Commit 4e56233305

4e56233305011fa3a95b3e8fc5c6f53d27efd63c

parent: b17264940c

Unsigned

cmc <hello@cleberg.net> · 2026-03-24 21:39 UTC

fix: add nested comments to satisfy sonar rule swift:S1186

Layout: unified · split

Hutch.xcodeproj/project.pbxproj +4 −4
@@ -359,7 +359,7 @@
359359 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
360360 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
361361 CODE_SIGN_STYLE = Automatic;
362 CURRENT_PROJECT_VERSION = 8;
362 CURRENT_PROJECT_VERSION = 9;
363363 DEVELOPMENT_TEAM = ZCNAX3VL9D;
364364 ENABLE_PREVIEWS = YES;
365365 GENERATE_INFOPLIST_FILE = YES;
@@ -376,7 +376,7 @@
376376 "$(inherited)",
377377 "@executable_path/Frameworks",
378378 );
379 MARKETING_VERSION = 2.3.0;
379 MARKETING_VERSION = 2.3.1;
380380 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.Hutch;
381381 PRODUCT_NAME = "$(TARGET_NAME)";
382382 STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -395,7 +395,7 @@
395395 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
396396 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
397397 CODE_SIGN_STYLE = Automatic;
398 CURRENT_PROJECT_VERSION = 8;
398 CURRENT_PROJECT_VERSION = 9;
399399 DEVELOPMENT_TEAM = ZCNAX3VL9D;
400400 ENABLE_PREVIEWS = YES;
401401 GENERATE_INFOPLIST_FILE = YES;
@@ -412,7 +412,7 @@
412412 "$(inherited)",
413413 "@executable_path/Frameworks",
414414 );
415 MARKETING_VERSION = 2.3.0;
415 MARKETING_VERSION = 2.3.1;
416416 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.Hutch;
417417 PRODUCT_NAME = "$(TARGET_NAME)";
418418 STRING_CATALOG_GENERATE_SYMBOLS = YES;
Hutch/Extensions/SRHTShareUI.swift +7 −2
@@ -40,7 +40,9 @@ struct SRHTShareButton<Label: View>: View {
4040 }
4141 }
4242 .alert("Share Unavailable", isPresented: $isShowingFallbackAlert) {
43 Button("OK", role: .cancel) {}
43 Button("OK", role: .cancel) {
44 // Alert dismissal is implicit; no additional action required.
45 }
4446 } message: {
4547 Text(target.fallbackMessage)
4648 }
@@ -54,5 +56,8 @@ private struct ShareSheet: UIViewControllerRepresentable {
5456 UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
5557 }
5658
57 func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {}
59 func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {
60 // UIActivityViewController is fully configured in makeUIViewController.
61 // No state-driven updates are required.
62 }
5863}
Hutch/Views/Builds/BuildDetailView.swift +3 −1
@@ -87,7 +87,9 @@ struct BuildDetailView: View {
8787 }
8888 }
8989 .alert("Cancel Build?", isPresented: $showCancelConfirmation) {
90 Button("Keep Running", role: .cancel) {}
90 Button("Keep Running", role: .cancel) {
91 // Alert dismissal is implicit; no additional action required.
92 }
9193 Button("Cancel Build", role: .destructive) {
9294 Task { await viewModel?.cancelJob() }
9395 }
Hutch/Views/Inbox/ThreadDetailView.swift +4 −1
@@ -277,7 +277,10 @@ private struct MailComposeView: UIViewControllerRepresentable {
277277 return controller
278278 }
279279
280 func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
280 func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
281 // The view controller is fully configured in makeUIViewController.
282 // No state-driven updates are required.
283 }
281284
282285 final class Coordinator: NSObject, MFMailComposeViewControllerDelegate {
283286 let onComplete: (Result) -> Void
Hutch/Views/Pastes/PasteDetailView.swift +3 −1
@@ -63,7 +63,9 @@ struct PasteDetailView: View {
6363 }
6464 }
6565 .alert("Delete Paste?", isPresented: $showDeleteConfirmation) {
66 Button("Cancel", role: .cancel) {}
66 Button("Cancel", role: .cancel) {
67 // Alert dismissal is implicit; no additional action required.
68 }
6769 Button("Delete", role: .destructive) {
6870 Task {
6971 if await viewModel?.deletePaste() == true {
Hutch/Views/Repositories/HgRepositorySettingsView.swift +10 −3
@@ -55,7 +55,9 @@ struct HgRepositorySettingsView: View {
5555 "Permanently delete \(repository.owner.canonicalName)/\(repository.name)?",
5656 isPresented: $showDeleteConfirmation
5757 ) {
58 Button("Cancel", role: .cancel) {}
58 Button("Cancel", role: .cancel) {
59 // Alert dismissal is implicit; no additional action required.
60 }
5961 Button("Delete", role: .destructive) {
6062 Task {
6163 await viewModel.deleteRepository()
@@ -76,7 +78,9 @@ struct HgRepositorySettingsView: View {
7678 }
7779 }
7880 )) {
79 Button("Cancel", role: .cancel) {}
81 Button("Cancel", role: .cancel) {
82 // Alert dismissal is implicit; no additional action required.
83 }
8084 Button("Remove Access", role: .destructive) {
8185 guard let entry = pendingACLDeletion else { return }
8286 Task {
@@ -234,7 +238,10 @@ struct HgRepositorySettingsView: View {
234238 .font(.caption)
235239 .foregroundStyle(.secondary)
236240
237 Button("Remove Revision", role: .destructive) {}
241 Button("Remove Revision", role: .destructive) {
242 // Not implemented: the hg.sr.ht API does not expose a histedit endpoint.
243 // This button is disabled until the API supports revision removal.
244 }
238245 .disabled(true)
239246 }
240247 }
Hutch/Views/Repositories/RepositorySettingsView.swift +6 −2
@@ -58,7 +58,9 @@ struct RepositorySettingsView: View {
5858 "Permanently delete \(repository.owner.canonicalName)/\(repository.name)?",
5959 isPresented: $showDeleteConfirmation
6060 ) {
61 Button("Cancel", role: .cancel) {}
61 Button("Cancel", role: .cancel) {
62 // Alert dismissal is implicit; no additional action required.
63 }
6264 Button("Delete", role: .destructive) {
6365 Task {
6466 await viewModel.deleteRepository()
@@ -79,7 +81,9 @@ struct RepositorySettingsView: View {
7981 }
8082 }
8183 )) {
82 Button("Cancel", role: .cancel) {}
84 Button("Cancel", role: .cancel) {
85 // Alert dismissal is implicit; no additional action required.
86 }
8387 Button("Remove Access", role: .destructive) {
8488 guard let entry = pendingACLDeletion else { return }
8589 Task {
Hutch/Views/Settings/SettingsView.swift +6 −2
@@ -99,7 +99,9 @@ struct SettingsView: View {
9999 }
100100 )
101101 ) {
102 Button("Cancel", role: .cancel) {}
102 Button("Cancel", role: .cancel) {
103 // Alert dismissal is implicit; no additional action required.
104 }
103105 Button(pendingDestructiveAction?.confirmationLabel ?? "Confirm", role: .destructive) {
104106 guard let action = pendingDestructiveAction else { return }
105107 pendingDestructiveAction = nil
@@ -608,7 +610,9 @@ private struct EditProfileSheet: View {
608610 }
609611 }
610612 .alert("Remove Avatar?", isPresented: $isShowingRemoveAvatarConfirmation) {
611 Button("Cancel", role: .cancel) {}
613 Button("Cancel", role: .cancel) {
614 // Alert dismissal is implicit; no additional action required.
615 }
612616 Button("Remove Avatar", role: .destructive) {
613617 Task {
614618 await viewModel.removeAvatar()
Hutch/Views/Tickets/TicketDetailView.swift +3 −1
@@ -424,7 +424,9 @@ private struct EventRow: View {
424424 .padding(.horizontal)
425425 .padding(.vertical, 8)
426426 .alert("System Status Change", isPresented: $isShowingSystemStatusInfo) {
427 Button("OK", role: .cancel) {}
427 Button("OK", role: .cancel) {
428 // Alert dismissal is implicit; no additional action required.
429 }
428430 } message: {
429431 Text("This status change was recorded automatically or without a named user attached to the event.")
430432 }