Build Information
Successful build of HandySwiftUI, reference main (68ad39
), with Swift 6.0 for macOS (SPM) on 18 Apr 2025 20:36:10 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats
Build Log
========================================
RunAll
========================================
Builder version: 4.60.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/FlineDev/HandySwiftUI.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/FlineDev/HandySwiftUI
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 68ad391 Showcase README improvements
Cloned https://github.com/FlineDev/HandySwiftUI.git
Revision (git rev-parse @):
68ad391c612d2bc1198d4e69ae29f02d5f922881
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/FlineDev/HandySwiftUI.git at main
Fetching https://github.com/FlineDev/HandySwift.git
[1/3368] Fetching handyswift
Fetched https://github.com/FlineDev/HandySwift.git from cache (1.02s)
Creating working copy for https://github.com/FlineDev/HandySwift.git
Working copy of https://github.com/FlineDev/HandySwift.git resolved at 4.3.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "handyswiftui",
"name": "HandySwiftUI",
"url": "https://github.com/FlineDev/HandySwiftUI.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/HandySwiftUI",
"dependencies": [
{
"identity": "handyswift",
"name": "HandySwift",
"url": "https://github.com/FlineDev/HandySwift.git",
"version": "4.3.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/HandySwift",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/FlineDev/HandySwiftUI.git
[1/1302] Fetching handyswiftui
Fetched https://github.com/FlineDev/HandySwiftUI.git from cache (1.20s)
Fetching https://github.com/FlineDev/HandySwift.git from cache
Fetched https://github.com/FlineDev/HandySwift.git from cache (0.40s)
Computing version for https://github.com/FlineDev/HandySwift.git
Computed https://github.com/FlineDev/HandySwift.git at 4.3.0 (0.44s)
Creating working copy for https://github.com/FlineDev/HandySwift.git
Working copy of https://github.com/FlineDev/HandySwift.git resolved at 4.3.0
Creating working copy for https://github.com/FlineDev/HandySwiftUI.git
Working copy of https://github.com/FlineDev/HandySwiftUI.git resolved at main (68ad391)
warning: '.resolve-product-dependencies': dependency 'handyswiftui' is not used by any target
Found 1 product dependencies
- HandySwift
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/FlineDev/HandySwiftUI.git
https://github.com/FlineDev/HandySwiftUI.git
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "handyswift",
"requirement" : {
"range" : [
{
"lower_bound" : "4.3.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/FlineDev/HandySwift.git"
}
],
"manifest_display_name" : "HandySwiftUI",
"name" : "HandySwiftUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "visionos",
"version" : "1.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "HandySwiftUI",
"targets" : [
"HandySwiftUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "HandySwiftUI",
"module_type" : "SwiftTarget",
"name" : "HandySwiftUI",
"path" : "Sources/HandySwiftUI",
"product_dependencies" : [
"HandySwift"
],
"product_memberships" : [
"HandySwiftUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Localizable.xcstrings",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Extensions/BindingExt.swift",
"Extensions/ButtonExt.swift",
"Extensions/CGFloatExt.swift",
"Extensions/ColorExt.swift",
"Extensions/CustomStringConvertibleExt.swift",
"Extensions/ImageExt.swift",
"Extensions/LabelExt.swift",
"Extensions/NotificationNameExt.swift",
"Extensions/PersistentModelExt.swift",
"Extensions/PickerExt.swift",
"Extensions/StringExt.swift",
"Extensions/TextExt.swift",
"Modifiers/FirstAppearModifier.swift",
"Modifiers/ForegroundStyleMinContrast.swift",
"Modifiers/ProgressOverlay.swift",
"Modifiers/ThrowingTask.swift",
"Modifiers/ViewExt.swift",
"Styles/CheckboxUniversalToggleStyle.swift",
"Styles/FixedIconWidthLabelStyle.swift",
"Styles/HorizontalLabelStyle.swift",
"Styles/HorizontalLabeledContentStyle.swift",
"Styles/PrimaryButtonStyle.swift",
"Styles/PulsatingButtonStyle.swift",
"Styles/SecondaryButtonStyle.swift",
"Styles/VerticalLabelStyle.swift",
"Styles/VerticalLabeledContentStyle.swift",
"Types/Models/Emoji.swift",
"Types/Models/SFSymbol.swift",
"Types/Other/AsyncResult.swift",
"Types/Other/AsyncState.swift",
"Types/Other/ColorSpaces.swift",
"Types/Other/OpenPanel.swift",
"Types/Other/Platform.swift",
"Types/Other/Xcode.swift",
"Types/Protocols/CustomLabelConvertible.swift",
"Types/Protocols/CustomSymbolConvertible.swift",
"Types/Views/AsyncButton.swift",
"Types/Views/AsyncView.swift",
"Types/Views/CachedAsyncImage.swift",
"Types/Views/DisclosureSection.swift",
"Types/Views/HPicker.swift",
"Types/Views/LimitedTextField.swift",
"Types/Views/MultiSelectionView.swift",
"Types/Views/MultiSelector.swift",
"Types/Views/SearchableGridPicker.swift",
"Types/Views/SideTabView.swift",
"Types/Views/VPicker.swift",
"Types/Views/WebView.swift"
],
"type" : "library"
}
],
"tools_version" : "6.0"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats
Building for debugging...
[0/5] Write sources
[2/5] Copying Info.plist
[2/5] Copying Localizable.xcstrings
[4/5] Write swift-version-5BDAB9E9C0126B9D.txt
[6/33] Emitting module HandySwift
[7/36] Compiling HandySwift TimeIntervalExt.swift
[8/36] Compiling HandySwift Globals.swift
[9/36] Compiling HandySwift AutoConforming.swift
[10/36] Compiling HandySwift HandyRegex.swift
[11/36] Compiling HandySwift OperatingSystem.swift
[12/36] Compiling HandySwift SortedArray.swift
[13/36] Compiling HandySwift DictionaryExt.swift
[14/36] Compiling HandySwift DispatchTimeIntervalExt.swift
[15/36] Compiling HandySwift DoubleExt.swift
[16/36] Compiling HandySwift NSRangeExt.swift
[17/36] Compiling HandySwift RandomAccessCollectionExt.swift
[18/36] Compiling HandySwift SequenceExt.swift
[19/36] Compiling HandySwift FrequencyTable.swift
[20/36] Compiling HandySwift GregorianDay.swift
[21/36] Compiling HandySwift GregorianTimeOfDay.swift
[22/36] Compiling HandySwift DivisibleArithmetic.swift
[23/36] Compiling HandySwift Withable.swift
[24/36] Compiling HandySwift Debouncer.swift
[25/36] Compiling HandySwift DurationExt.swift
[26/36] Compiling HandySwift FloatExt.swift
[27/36] Compiling HandySwift IntExt.swift
[28/36] Compiling HandySwift ComparableExt.swift
[29/36] Compiling HandySwift DataExt.swift
[30/36] Compiling HandySwift DateExt.swift
[31/36] Compiling HandySwift ArrayExt.swift
[32/36] Compiling HandySwift CaseIterableExt.swift
[33/36] Compiling HandySwift CollectionExt.swift
[34/36] Compiling HandySwift StringExt.swift
[35/36] Compiling HandySwift StringProtocolExt.swift
[36/36] Compiling HandySwift SymmetricKeyExt.swift
[37/82] Compiling HandySwiftUI HorizontalLabeledContentStyle.swift
[38/82] Compiling HandySwiftUI PrimaryButtonStyle.swift
[39/82] Compiling HandySwiftUI PulsatingButtonStyle.swift
[40/82] Compiling HandySwiftUI SecondaryButtonStyle.swift
[41/82] Compiling HandySwiftUI VerticalLabelStyle.swift
[42/86] Compiling HandySwiftUI CustomSymbolConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[43/86] Compiling HandySwiftUI AsyncButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[44/86] Compiling HandySwiftUI AsyncView.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[45/86] Compiling HandySwiftUI CachedAsyncImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[46/86] Compiling HandySwiftUI DisclosureSection.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[47/86] Compiling HandySwiftUI ColorSpaces.swift
[48/86] Compiling HandySwiftUI OpenPanel.swift
[49/86] Compiling HandySwiftUI Platform.swift
[50/86] Compiling HandySwiftUI Xcode.swift
[51/86] Compiling HandySwiftUI CustomLabelConvertible.swift
[52/86] Compiling HandySwiftUI BindingExt.swift
[53/86] Compiling HandySwiftUI ButtonExt.swift
[54/86] Compiling HandySwiftUI CGFloatExt.swift
[55/86] Compiling HandySwiftUI ColorExt.swift
[56/86] Compiling HandySwiftUI CustomStringConvertibleExt.swift
[57/86] Compiling HandySwiftUI ThrowingTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[58/86] Compiling HandySwiftUI ViewExt.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[59/86] Compiling HandySwiftUI CheckboxUniversalToggleStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[60/86] Compiling HandySwiftUI FixedIconWidthLabelStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[61/86] Compiling HandySwiftUI HorizontalLabelStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[62/86] Compiling HandySwiftUI StringExt.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[63/86] Compiling HandySwiftUI TextExt.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[64/86] Compiling HandySwiftUI FirstAppearModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[65/86] Compiling HandySwiftUI ForegroundStyleMinContrast.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[66/86] Compiling HandySwiftUI ProgressOverlay.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[67/86] Compiling HandySwiftUI ImageExt.swift
[68/86] Compiling HandySwiftUI LabelExt.swift
[69/86] Compiling HandySwiftUI NotificationNameExt.swift
[70/86] Compiling HandySwiftUI PersistentModelExt.swift
[71/86] Compiling HandySwiftUI PickerExt.swift
[72/86] Compiling HandySwiftUI HPicker.swift
[73/86] Compiling HandySwiftUI LimitedTextField.swift
[74/86] Compiling HandySwiftUI MultiSelectionView.swift
[75/86] Compiling HandySwiftUI MultiSelector.swift
[76/86] Compiling HandySwiftUI SearchableGridPicker.swift
[77/86] Emitting module HandySwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[78/86] Compiling HandySwiftUI SideTabView.swift
[79/86] Compiling HandySwiftUI VPicker.swift
[80/86] Compiling HandySwiftUI WebView.swift
[81/86] Compiling HandySwiftUI resource_bundle_accessor.swift
[82/86] Compiling HandySwiftUI VerticalLabeledContentStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[83/86] Compiling HandySwiftUI Emoji.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[84/86] Compiling HandySwiftUI SFSymbol.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[85/86] Compiling HandySwiftUI AsyncResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[86/86] Compiling HandySwiftUI AsyncState.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
Build complete! (58.02s)
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "handyswift",
"requirement" : {
"range" : [
{
"lower_bound" : "4.3.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/FlineDev/HandySwift.git"
}
],
"manifest_display_name" : "HandySwiftUI",
"name" : "HandySwiftUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "visionos",
"version" : "1.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "HandySwiftUI",
"targets" : [
"HandySwiftUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "HandySwiftUI",
"module_type" : "SwiftTarget",
"name" : "HandySwiftUI",
"path" : "Sources/HandySwiftUI",
"product_dependencies" : [
"HandySwift"
],
"product_memberships" : [
"HandySwiftUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Localizable.xcstrings",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Extensions/BindingExt.swift",
"Extensions/ButtonExt.swift",
"Extensions/CGFloatExt.swift",
"Extensions/ColorExt.swift",
"Extensions/CustomStringConvertibleExt.swift",
"Extensions/ImageExt.swift",
"Extensions/LabelExt.swift",
"Extensions/NotificationNameExt.swift",
"Extensions/PersistentModelExt.swift",
"Extensions/PickerExt.swift",
"Extensions/StringExt.swift",
"Extensions/TextExt.swift",
"Modifiers/FirstAppearModifier.swift",
"Modifiers/ForegroundStyleMinContrast.swift",
"Modifiers/ProgressOverlay.swift",
"Modifiers/ThrowingTask.swift",
"Modifiers/ViewExt.swift",
"Styles/CheckboxUniversalToggleStyle.swift",
"Styles/FixedIconWidthLabelStyle.swift",
"Styles/HorizontalLabelStyle.swift",
"Styles/HorizontalLabeledContentStyle.swift",
"Styles/PrimaryButtonStyle.swift",
"Styles/PulsatingButtonStyle.swift",
"Styles/SecondaryButtonStyle.swift",
"Styles/VerticalLabelStyle.swift",
"Styles/VerticalLabeledContentStyle.swift",
"Types/Models/Emoji.swift",
"Types/Models/SFSymbol.swift",
"Types/Other/AsyncResult.swift",
"Types/Other/AsyncState.swift",
"Types/Other/ColorSpaces.swift",
"Types/Other/OpenPanel.swift",
"Types/Other/Platform.swift",
"Types/Other/Xcode.swift",
"Types/Protocols/CustomLabelConvertible.swift",
"Types/Protocols/CustomSymbolConvertible.swift",
"Types/Views/AsyncButton.swift",
"Types/Views/AsyncView.swift",
"Types/Views/CachedAsyncImage.swift",
"Types/Views/DisclosureSection.swift",
"Types/Views/HPicker.swift",
"Types/Views/LimitedTextField.swift",
"Types/Views/MultiSelectionView.swift",
"Types/Views/MultiSelector.swift",
"Types/Views/SearchableGridPicker.swift",
"Types/Views/SideTabView.swift",
"Types/Views/VPicker.swift",
"Types/Views/WebView.swift"
],
"type" : "library"
}
],
"tools_version" : "6.0"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/flinedev/handyswiftui/main
Repository: FlineDev/HandySwiftUI
Swift version used: 6.0
Target: HandySwiftUI
Extracting symbol information for 'HandySwiftUI'...
Finished extracting symbol information for 'HandySwiftUI'. (30.03s)
Building documentation for 'HandySwiftUI'...
warning: External name 'by' used to document parameter
--> ../Extensions/ColorExt.swift:398:12-398:14
396 | /// - Parameters:
397 | /// - attribute: The attribute to change.
398 + /// - by: The addition to be added to the current value of the attribute.
| ╰─suggestion: Replace 'by' with 'addition'
399 | /// - Returns: The resulting new `Color` with the specified change applied.
400 | public func change(_ attribute: ChangeableAttribute, by addition: Double) -> Self {
warning: External name 'to' used to document parameter
--> ../Extensions/ColorExt.swift:438:12-438:14
436 | /// - Parameters:
437 | /// - attribute: The attribute to change.
438 + /// - to: The new value to be set for the attribute.
| ╰─suggestion: Replace 'to' with 'newValue'
439 | /// - Returns: The resulting new `Color` with the specified change applied.
440 | public func change(_ attribute: ChangeableAttribute, to newValue: Double) -> Self {
warning: Return value documented for initializer returning void
--> ../Extensions/ImageExt.swift:11:8-12:8
9 | /// - variableValue: An optional value for variable value symbols.
10 | ///
11 + /// - Returns: An `Image` view representing the system symbol.
| ╰─suggestion: Remove return value documentation
12 + ///
13 | /// - Example:
14 | /// ```swift
warning: Parameter 'applytingAttributes' not found in instance method declaration
--> ../Extensions/StringExt.swift:53:12-53:31
51 | /// - searchText: The text to search for within the string.
52 | /// - locale: The locale to use for string comparisons. Defaults to `nil`.
53 + /// - applytingAttributes: A closure that gets passed an `AttributedSubstring` you can customize to define how to highlight. By default, a yellow background and bold black foreground text is used.
| ╰─suggestion: Replace 'applytingAttributes' with 'applyingAttributes'
54 | ///
55 | /// - Returns: An `AttributedString` with matching prefixes highlighted.
warning: Parameter 'applyingAttributes' is missing documentation
--> ../Extensions/StringExt.swift:54:8-54:8
52 | /// - locale: The locale to use for string comparisons. Defaults to `nil`.
53 | /// - applytingAttributes: A closure that gets passed an `AttributedSubstring` you can customize to define how to highlight. By default, a yellow background and bold black foreground text is used.
54 + ///
| ╰─suggestion: Document 'applyingAttributes' parameter
55 | /// - Returns: An `AttributedString` with matching prefixes highlighted.
56 | ///
warning: 'CustomStringConvertible' doesn't exist at '/HandySwiftUI/SwiftUICore/Text/init(convertible:)'
--> ../Extensions/TextExt.swift:5:84-5:107
3 |
4 | extension Text {
5 + /// Creates a ``Text`` view using the `description` parameter of the provided ``CustomStringConvertible`` instance.
6 | public init(convertible: CustomStringConvertible) {
7 | self.init(convertible.description)
warning: External name 'format' used to document parameter
--> ../Extensions/TextExt.swift:28:12-28:18
26 | ///
27 | /// - Parameters:
28 + /// - format: The string to be rendered as a Text.
| ╰─suggestion: Replace 'format' with 'formatString'
29 | /// - partialStyling: A dictionary with keys serving as names for HTML-like tags and values creating custom formatted `Text` objects for substrings.
30 | public init(
warning: '!(value:)' doesn't exist at '/HandySwiftUI/Extensions'
--> Essentials/Extensions.md:248:5-248:14
246 | ### Binding
247 |
248 + - ``!(value:)``
249 | - ``??(binding:fallback:)``
250 | - ``SwiftUICore/Binding/isPresent(wrappedType:)``
warning: '??(binding:fallback:)' doesn't exist at '/HandySwiftUI/Extensions'
--> Essentials/Extensions.md:249:5-249:26
247 |
248 | - ``!(value:)``
249 + - ``??(binding:fallback:)``
250 | - ``SwiftUICore/Binding/isPresent(wrappedType:)``
251 |
warning: 'UIKit' doesn't exist at '/HandySwiftUI/Extensions'
--> Essentials/Extensions.md:291:5-291:10
289 | - ``AppKit/NSImage/pngData()``
290 | - ``AppKit/NSImage/resized(maxWidth:maxHeight:)``
291 + - ``UIKit/UIImage/heicData(compressionQuality:)``
292 | - ``UIKit/UIImage/resized(maxWidth:maxHeight:)``
293 |
warning: 'UIKit' doesn't exist at '/HandySwiftUI/Extensions'
--> Essentials/Extensions.md:292:5-292:10
290 | - ``AppKit/NSImage/resized(maxWidth:maxHeight:)``
291 | - ``UIKit/UIImage/heicData(compressionQuality:)``
292 + - ``UIKit/UIImage/resized(maxWidth:maxHeight:)``
293 |
294 | ### Label
warning: 'Notification' doesn't exist at '/HandySwiftUI/Foundation'
--> Essentials/Extensions.md:300:16-300:28
298 | ### Notification.Name
299 |
300 + - ``Foundation/Notification/Name/publisher``
| ╰─suggestion: Replace 'Notification' with 'NSNotification'
301 | - ``Foundation/Notification/Name/post(object:)``
302 |
warning: 'Notification' doesn't exist at '/HandySwiftUI/Foundation'
--> Essentials/Extensions.md:301:16-301:28
299 |
300 | - ``Foundation/Notification/Name/publisher``
301 + - ``Foundation/Notification/Name/post(object:)``
| ╰─suggestion: Replace 'Notification' with 'NSNotification'
302 |
303 | ### PersistentModel
warning: 'highlightMatchingTokenizedPrefixes(in:locale:with:)' doesn't exist at '/HandySwiftUI/Swift/String'
--> Essentials/Extensions.md:310:18-310:69
308 |
309 | - ``Swift/String/toRGBA()``
310 + - ``Swift/String/highlightMatchingTokenizedPrefixes(in:locale:with:)``
| ╰─suggestion: Replace 'highlightMatchingTokenizedPrefixes(in:locale:with:)' with 'highlightMatchingTokenizedPrefixes(in:locale:applyingAttributes:)'
311 | - ``Swift/String/nilPlaceholderValue``
312 |
warning: 'nilPlaceholderValue' doesn't exist at '/HandySwiftUI/Swift/String'
--> Essentials/Extensions.md:311:18-311:37
309 | - ``Swift/String/toRGBA()``
310 | - ``Swift/String/highlightMatchingTokenizedPrefixes(in:locale:with:)``
311 + - ``Swift/String/nilPlaceholderValue``
312 |
313 | ### Text
warning: 'checkboxUniversal' doesn't exist at '/HandySwiftUI/SwiftUI/ToggleStyle'
--> Essentials/Styles.md:169:25-169:42
167 | ### ToggleStyle
168 |
169 + - ``SwiftUI/ToggleStyle/checkboxUniversal``
| ╰─suggestion: Replace 'checkboxUniversal' with 'checkboxUniversal(spacing:)'
170 |
171 |
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:485:10-485:110
483 | ///
484 | /// - Parameters:
485 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
487 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:487:8-487:8
485 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
486 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
487 + ///
488 | /// - Returns: A view with the confirmation dialog attached.
489 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'isPresented' not found in instance method declaration
--> ../Modifiers/ViewExt.swift:550:10-550:110
548 | /// - Parameters:
549 | /// - message: A localized string key for the custom warning message to display.
550 + /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
| ╰─suggestion: Remove 'isPresented' parameter documentation
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
552 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: Parameter 'item' is missing documentation
--> ../Modifiers/ViewExt.swift:552:8-552:8
550 | /// - isPresented: A binding to a Boolean value that determines whether to show the confirmation dialog.
551 | /// - performDelete: A closure that gets called when the user confirms the delete action. The item to delete will be passed as a parameter.
| ╰─suggestion: Document 'item' parameter
552 + ///
553 | /// - Returns: A view with the confirmation dialog attached.
554 | ///
warning: 'CheckboxToggleStyle' doesn't exist at '/HandySwiftUI/CheckboxUniversalToggleStyle'
--> ../Styles/CheckboxUniversalToggleStyle.swift:3:45-3:64
1 | import SwiftUI
2 |
3 + /// A custom toggle style that works like ``CheckboxToggleStyle`` but supports all Apple platforms, not just macOS.
| ╰─suggestion: Replace 'CheckboxToggleStyle' with 'ToggleStyle-Implementations'
4 | public struct CheckboxUniversalToggleStyle: ToggleStyle {
5 | let spacing: Double
warning: 'ToggleStyle.checkbox' doesn't exist at '/HandySwiftUI/SwiftUI/ToggleStyle/checkboxUniversal(spacing:)'
--> ../Styles/CheckboxUniversalToggleStyle.swift:39:48-39:68
37 |
38 | extension ToggleStyle where Self == CheckboxUniversalToggleStyle {
39 + /// A custom toggle style that works like ``ToggleStyle.checkbox`` but supports all Apple platforms, not just macOS.
40 | public static func checkboxUniversal(spacing: Double = 14) -> CheckboxUniversalToggleStyle {
41 | CheckboxUniversalToggleStyle(spacing: spacing)
warning: 'ToggleStyle.checkbox' doesn't exist at '/HandySwiftUI/CheckboxUniversalToggleStyle/checkboxUniversal(spacing:)'
--> ../Styles/CheckboxUniversalToggleStyle.swift:39:48-39:68
37 |
38 | extension ToggleStyle where Self == CheckboxUniversalToggleStyle {
39 + /// A custom toggle style that works like ``ToggleStyle.checkbox`` but supports all Apple platforms, not just macOS.
40 | public static func checkboxUniversal(spacing: Double = 14) -> CheckboxUniversalToggleStyle {
41 | CheckboxUniversalToggleStyle(spacing: spacing)
warning: 'Button' doesn't exist at '/HandySwiftUI/AsyncButton'
--> ../Types/Views/AsyncButton.swift:3:9-3:15
1 | import SwiftUI
2 |
3 + /// A ``Button`` that creates a ``Task`` in its action closure which gets automatically cancelled ``.onDisappear``.
4 | /// The button shows both progress while the task is in progress and indicates success or failure when the task is completed or throws an error.
5 | ///
warning: 'Task' doesn't exist at '/HandySwiftUI/AsyncButton'
--> ../Types/Views/AsyncButton.swift:3:35-3:39
1 | import SwiftUI
2 |
3 + /// A ``Button`` that creates a ``Task`` in its action closure which gets automatically cancelled ``.onDisappear``.
4 | /// The button shows both progress while the task is in progress and indicates success or failure when the task is completed or throws an error.
5 | ///
warning: '.onDisappear' doesn't exist at '/HandySwiftUI/AsyncButton'
--> ../Types/Views/AsyncButton.swift:3:101-3:113
1 | import SwiftUI
2 |
3 + /// A ``Button`` that creates a ``Task`` in its action closure which gets automatically cancelled ``.onDisappear``.
| ╰─suggestion: Replace '.onDisappear' with 'onDisappear(perform:)'
4 | /// The button shows both progress while the task is in progress and indicates success or failure when the task is completed or throws an error.
5 | ///
warning: Parameter 'title' is missing documentation
--> ../Types/Views/LimitedTextField.swift:14:69-14:69
12 | /// - Parameters:
13 | /// - text: A binding to the `String` value representing the text input.
| ╰─suggestion: Document 'title' parameter
14 + /// - characterLimit: The maximum number of characters allowed.
15 | public init(_ title: LocalizedStringKey, text: Binding<String>, characterLimit: Int) {
16 | self.title = titleFinished building documentation for 'HandySwiftUI' (6.67s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/flinedev/handyswiftui/main
Fetching https://github.com/swiftlang/swift-docc-plugin
Updating https://github.com/FlineDev/HandySwift.git
Updated https://github.com/FlineDev/HandySwift.git (0.42s)
[1/2049] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.11s)
Computing version for https://github.com/FlineDev/HandySwift.git
Computed https://github.com/FlineDev/HandySwift.git at 4.3.0 (0.43s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (2.42s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3366] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.16s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.60s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[2/8] Write sources
[4/8] Write swift-version-5BDAB9E9C0126B9D.txt
[6/53] Emitting module SymbolKit
[7/57] Emitting module Snippets
[8/57] Compiling Snippets SnippetParser.swift
[9/57] Compiling Snippets Snippet.swift
[10/57] Compiling SymbolKit Names.swift
[11/57] Compiling SymbolKit SPI.swift
[12/57] Compiling SymbolKit Snippet.swift
[13/57] Compiling SymbolKit Extension.swift
[14/57] Compiling SymbolKit Mixin+Equals.swift
[15/57] Compiling SymbolKit Mixin+Hash.swift
[16/57] Compiling SymbolKit Mixin.swift
[17/57] Compiling SymbolKit LineList.swift
[18/57] Compiling SymbolKit Position.swift
[19/57] Compiling SymbolKit Symbol.swift
[20/57] Compiling SymbolKit SymbolKind.swift
[21/57] Compiling SymbolKit SymbolGraph.swift
[22/57] Compiling SymbolKit GraphCollector.swift
[23/57] Compiling SymbolKit Identifier.swift
[24/57] Compiling SymbolKit KindIdentifier.swift
[25/57] Compiling SymbolKit Location.swift
[26/57] Compiling SymbolKit Mutability.swift
[27/57] Compiling SymbolKit SourceRange.swift
[28/57] Compiling SymbolKit Metadata.swift
[29/57] Compiling SymbolKit Module.swift
[30/57] Compiling SymbolKit OperatingSystem.swift
[31/57] Compiling SymbolKit Platform.swift
[32/57] Compiling SymbolKit DeclarationFragments.swift
[33/57] Compiling SymbolKit Fragment.swift
[34/57] Compiling SymbolKit FragmentKind.swift
[35/57] Compiling SymbolKit FunctionParameter.swift
[36/57] Compiling SymbolKit FunctionSignature.swift
[37/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[38/57] Compiling SymbolKit UnifiedSymbol.swift
[39/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[40/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[41/57] Compiling SymbolKit GenericConstraint.swift
[42/57] Compiling SymbolKit GenericParameter.swift
[43/57] Compiling SymbolKit Generics.swift
[44/57] Compiling SymbolKit Namespace.swift
[45/57] Compiling SymbolKit SemanticVersion.swift
[46/57] Compiling SymbolKit AccessControl.swift
[47/57] Compiling SymbolKit Availability.swift
[48/57] Compiling SymbolKit AvailabilityItem.swift
[49/57] Compiling SymbolKit Domain.swift
[50/57] Compiling SymbolKit Relationship.swift
[51/57] Compiling SymbolKit RelationshipKind.swift
[52/57] Compiling SymbolKit SourceOrigin.swift
[53/57] Compiling SymbolKit GenericConstraints.swift
[54/57] Compiling SymbolKit Swift.swift
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.08s)
Building for debugging...
[0/1] Write swift-version-5BDAB9E9C0126B9D.txt
[2/29] Compiling HandySwift ComparableExt.swift
[3/29] Compiling HandySwift DataExt.swift
[4/29] Compiling HandySwift DateExt.swift
[5/29] Compiling HandySwift ArrayExt.swift
[6/29] Compiling HandySwift CaseIterableExt.swift
[7/29] Compiling HandySwift CollectionExt.swift
[8/32] Compiling HandySwift DictionaryExt.swift
[9/32] Compiling HandySwift DispatchTimeIntervalExt.swift
[10/32] Compiling HandySwift DoubleExt.swift
[11/32] Compiling HandySwift TimeIntervalExt.swift
[12/32] Compiling HandySwift Globals.swift
[13/32] Compiling HandySwift AutoConforming.swift
[14/32] Compiling HandySwift StringExt.swift
[15/32] Compiling HandySwift StringProtocolExt.swift
[16/32] Compiling HandySwift SymmetricKeyExt.swift
[17/32] Compiling HandySwift DurationExt.swift
[18/32] Compiling HandySwift FloatExt.swift
[19/32] Compiling HandySwift IntExt.swift
[20/32] Compiling HandySwift DivisibleArithmetic.swift
[21/32] Compiling HandySwift Withable.swift
[22/32] Compiling HandySwift Debouncer.swift
[23/32] Compiling HandySwift NSRangeExt.swift
[24/32] Compiling HandySwift RandomAccessCollectionExt.swift
[25/32] Compiling HandySwift SequenceExt.swift
[26/32] Emitting module HandySwift
[27/32] Compiling HandySwift FrequencyTable.swift
[28/32] Compiling HandySwift GregorianDay.swift
[29/32] Compiling HandySwift GregorianTimeOfDay.swift
[30/32] Compiling HandySwift HandyRegex.swift
[31/32] Compiling HandySwift OperatingSystem.swift
[32/32] Compiling HandySwift SortedArray.swift
[33/78] Compiling HandySwiftUI ImageExt.swift
[34/78] Compiling HandySwiftUI LabelExt.swift
[35/78] Compiling HandySwiftUI NotificationNameExt.swift
[36/78] Compiling HandySwiftUI PersistentModelExt.swift
[37/78] Compiling HandySwiftUI PickerExt.swift
[38/82] Compiling HandySwiftUI HorizontalLabeledContentStyle.swift
[39/82] Compiling HandySwiftUI PrimaryButtonStyle.swift
[40/82] Compiling HandySwiftUI PulsatingButtonStyle.swift
[41/82] Compiling HandySwiftUI SecondaryButtonStyle.swift
[42/82] Compiling HandySwiftUI VerticalLabelStyle.swift
[43/82] Compiling HandySwiftUI ThrowingTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[44/82] Compiling HandySwiftUI ViewExt.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[45/82] Compiling HandySwiftUI CheckboxUniversalToggleStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[46/82] Compiling HandySwiftUI FixedIconWidthLabelStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[47/82] Compiling HandySwiftUI HorizontalLabelStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
[48/82] Compiling HandySwiftUI StringExt.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[49/82] Compiling HandySwiftUI TextExt.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[50/82] Compiling HandySwiftUI FirstAppearModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[51/82] Compiling HandySwiftUI ForegroundStyleMinContrast.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[52/82] Compiling HandySwiftUI ProgressOverlay.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:37:24: warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
35 | var previousRange: Range<String.Index>?
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
| `- warning: 'init(_:options:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
38 | for match in regex.matches(in: formatString) {
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Extensions/TextExt.swift:38:26: warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
36 |
37 | let regex = try! HandyRegex(#"<([^<>]+)>([^<>]+)</([^<>]+)>|<([^<>]+)/>"#)
38 | for match in regex.matches(in: formatString) {
| `- warning: 'matches(in:)' is deprecated: The HandyRegex type will be removed in a future version. Migrate to Swift.Regex<Output> if possible.
39 | let prefix = formatString[(previousRange?.upperBound ?? formatString.startIndex)..<match.range.lowerBound]
40 | if !prefix.isEmpty {
[53/82] Compiling HandySwiftUI BindingExt.swift
[54/82] Compiling HandySwiftUI ButtonExt.swift
[55/82] Compiling HandySwiftUI CGFloatExt.swift
[56/82] Compiling HandySwiftUI ColorExt.swift
[57/82] Compiling HandySwiftUI CustomStringConvertibleExt.swift
[58/82] Compiling HandySwiftUI CustomSymbolConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[59/82] Compiling HandySwiftUI AsyncButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[60/82] Compiling HandySwiftUI AsyncView.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[61/82] Compiling HandySwiftUI CachedAsyncImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[62/82] Compiling HandySwiftUI DisclosureSection.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[63/82] Compiling HandySwiftUI SideTabView.swift
[64/82] Compiling HandySwiftUI VPicker.swift
[65/82] Compiling HandySwiftUI WebView.swift
[66/82] Compiling HandySwiftUI resource_bundle_accessor.swift
[67/82] Compiling HandySwiftUI ColorSpaces.swift
[68/82] Compiling HandySwiftUI OpenPanel.swift
[69/82] Compiling HandySwiftUI Platform.swift
[70/82] Compiling HandySwiftUI Xcode.swift
[71/82] Compiling HandySwiftUI CustomLabelConvertible.swift
[72/82] Emitting module HandySwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Modifiers/ViewExt.swift:616:13: warning: 🧑💻 consider creating keypath variants, as well as one for platforms
614 | }
615 |
616 | #warning("🧑💻 consider creating keypath variants, as well as one for platforms")
| `- warning: 🧑💻 consider creating keypath variants, as well as one for platforms
617 | }
618 |
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Views/CachedAsyncImage.swift:102:13: warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
100 | }
101 |
102 | #warning("🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view")
| `- warning: 🧑💻 add an init overload that accepts a custom placeholder view to be shown while loading instead of the progress view
103 |
104 | public var body: some View {
[73/82] Compiling HandySwiftUI HPicker.swift
[74/82] Compiling HandySwiftUI LimitedTextField.swift
[75/82] Compiling HandySwiftUI MultiSelectionView.swift
[76/82] Compiling HandySwiftUI MultiSelector.swift
[77/82] Compiling HandySwiftUI SearchableGridPicker.swift
[78/82] Compiling HandySwiftUI VerticalLabeledContentStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[79/82] Compiling HandySwiftUI Emoji.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[80/82] Compiling HandySwiftUI SFSymbol.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[81/82] Compiling HandySwiftUI AsyncResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
[82/82] Compiling HandySwiftUI AsyncState.swift
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/Emoji.swift:1895:13: warning: 🧑💻 localize the search terms to support more languages
1893 | }
1894 |
1895 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
1896 | /// Search terms related to each emoji. This can be used to filter or find emojis based on keywords.
1897 | ///
/Users/admin/builder/spi-builder-workspace/Sources/HandySwiftUI/Types/Models/SFSymbol.swift:265:13: warning: 🧑💻 localize the search terms to support more languages
263 | }
264 |
265 | #warning("🧑💻 localize the search terms to support more languages")
| `- warning: 🧑💻 localize the search terms to support more languages
266 | /// Search terms related to each SF Symbol. This can be used to filter or find symbols based on keywords.
267 | ///
Build of target: 'HandySwiftUI' complete! (25.32s)
20871
149 /Users/admin/builder/spi-builder-workspace/.docs/flinedev/handyswiftui/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/flinedev/handyswiftui/main
File count: 20871
Doc size: 149.0MB
Preparing doc bundle ...
Uploading prod-flinedev-handyswiftui-main-9ca93176.zip to s3://spi-docs-inbox/prod-flinedev-handyswiftui-main-9ca93176.zip
Copying... [10%]
Copying... [20%]
Copying... [30%]
Copying... [40%]
Copying... [50%]
Copying... [60%]
Copying... [70%]
Copying... [80%]
Copying... [90%]
Copying... [100%]
Done.