Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Groups Rebuild #894

Draft
wants to merge 148 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
6c1b997
Merge branch 'feature/drop-yap-database-support' into feature/groups-…
mpretty-cyro Aug 21, 2023
674d99c
Merge branch 'fix/minor-outgoing-quote-bugs' into feature/groups-rebuild
mpretty-cyro Aug 21, 2023
812a951
Added the group namespaces and added better build script error handling
mpretty-cyro Aug 21, 2023
f44b545
[WIP] Initial start on updated groups via configs
mpretty-cyro Aug 25, 2023
f1075e9
Started adding logic and unit tests for group creation
mpretty-cyro Aug 31, 2023
6dd4c79
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Aug 31, 2023
c77d7ec
[WIP] Refactored dependency access to be more generic
mpretty-cyro Sep 1, 2023
5d9a233
Started trying to sync new groups between devices
mpretty-cyro Sep 1, 2023
b31afa8
Reworked SnodeAPI auth and prepared requests
mpretty-cyro Sep 6, 2023
0982526
Adding support for a few more properties group members
mpretty-cyro Sep 8, 2023
65057fb
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro Sep 8, 2023
d6b92ba
Fixed a couple of build errors
mpretty-cyro Sep 8, 2023
8d7cce4
Merge remote-tracking branch 'origin/feature/add-timestamps-to-notifi…
mpretty-cyro Sep 19, 2023
7b04a4b
Updated logic to prepare for updated group message crypto
mpretty-cyro Sep 19, 2023
3abeeff
Fixed build errors and cleaned up Dependencies interface further
mpretty-cyro Sep 19, 2023
96b5403
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro Sep 26, 2023
d8b0f76
Merge remote-tracking branch 'RyanFork/disappearing-message-redesign'…
mpretty-cyro Sep 26, 2023
691acf2
Merge remote-tracking branch 'RyanFork/disappearing-message-redesign'…
mpretty-cyro Sep 26, 2023
4f10277
Clean up and fixed some broken tests
mpretty-cyro Sep 26, 2023
a48327f
[WIP] Updated to the latest libSession and started plugging in
mpretty-cyro Sep 26, 2023
67311f6
Added some more tests and cleaned up some warnings
mpretty-cyro Sep 28, 2023
9e471fb
Cleaned up some TODOs and refactored more requests to prepared ones
mpretty-cyro Oct 1, 2023
abda057
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Oct 3, 2023
bdad2d8
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Oct 3, 2023
32495f0
Did some refactoring to better distinguish between publicKeys and ses…
mpretty-cyro Oct 5, 2023
b47b98f
Added DisplayPictureDownloadJob & use PreparedRequest in FileServerAPI
mpretty-cyro Oct 5, 2023
56a2828
Updated to the latest libSession
mpretty-cyro Oct 9, 2023
02a9876
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Oct 9, 2023
5ac05a4
Merge remote-tracking branch 'RyanFork/disappearing-message-redesign'…
mpretty-cyro Oct 12, 2023
8e04944
Fixes from cross-platform testing and general code changes
mpretty-cyro Oct 12, 2023
67713ca
Fixed a few bugs and resolved some TODOs
mpretty-cyro Oct 13, 2023
4127d45
Added more unit tests
mpretty-cyro Oct 13, 2023
81d0072
Including the change to create an updated group instead of a legacy one
mpretty-cyro Oct 15, 2023
0055f84
Updated the Sodium dependency to use a commit hash to fix ambiguity
mpretty-cyro Oct 16, 2023
a3ef1c9
Started adding logic for the GroupUpdate messages
mpretty-cyro Oct 16, 2023
a05e07d
Fixed a build error
mpretty-cyro Oct 17, 2023
0df6501
Pushing up my WIP changes from the last few days
mpretty-cyro Oct 19, 2023
417060a
Added functionality for a bunch of GroupUpdate messages
mpretty-cyro Oct 20, 2023
00f246a
Added group message requests, admin message deletion, fixed a few bugs
mpretty-cyro Oct 25, 2023
a511815
Finished invite statuses and toasts
mpretty-cyro Oct 27, 2023
b90ee74
Added promotion handling, message deletion & deprecation banner
mpretty-cyro Oct 30, 2023
7e34c16
Added the new localised strings
mpretty-cyro Oct 30, 2023
dffe321
Added the updated revoke & unrevoke endpoints
mpretty-cyro Oct 30, 2023
4f2b629
Added bolding to the control messages and unit testing work
mpretty-cyro Oct 31, 2023
0c1ea23
Started adding tests for the DisplayPictureDownloadJob and clean up
mpretty-cyro Nov 1, 2023
32f5a18
WIP adding PNs for updated groups and changes for enabling unit testing
mpretty-cyro Nov 1, 2023
59fc7a5
New DeveloperSettingsViewModel, bulk PN endpoints and updated group m…
mpretty-cyro Nov 10, 2023
2109c4c
Fixed a developer settings crash
mpretty-cyro Nov 13, 2023
1057a4c
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Nov 13, 2023
b89a4d3
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Nov 13, 2023
988fa5c
Fixed build errors from merge
mpretty-cyro Nov 13, 2023
b7b7b4a
Added disappearing messages support to updated groups
mpretty-cyro Nov 14, 2023
fa8e37b
Removed 'fileIds' from Message.Destination (tested and won't break)
mpretty-cyro Nov 14, 2023
fadde4d
Fixed the broken unit tests
mpretty-cyro Nov 14, 2023
e4354b7
Merge branch 'feature/groups-rebuild-part-2' into feature/groups-rebuild
mpretty-cyro Nov 14, 2023
875bf88
Added more unit tests, fixed a couple of minor bugs
mpretty-cyro Nov 14, 2023
d3e3ad7
Added some more tests and fixed up some others
mpretty-cyro Nov 14, 2023
4768584
Added some more unit tests
mpretty-cyro Nov 15, 2023
b22ec12
Added handling for "needs rekey" after the merge occurs
mpretty-cyro Nov 15, 2023
6100b61
Added some more prepared request unit tests
mpretty-cyro Nov 15, 2023
315d78b
[REVERT ME] Allow arbitrary loads in ATS for QA
mpretty-cyro Nov 16, 2023
3d60757
Reworked test DSL to speed up build time and added more tests
mpretty-cyro Nov 16, 2023
37d3d5b
Plugged in some more libSession functions and added more unit tests
mpretty-cyro Nov 17, 2023
3bb11ae
Fixed the broken legacy group push notifications & CI tweaks
mpretty-cyro Nov 21, 2023
0ce1edd
CI tweaks
mpretty-cyro Nov 21, 2023
6be2608
Further CI tweaks
mpretty-cyro Nov 21, 2023
08337fe
More unit tests and trying to extend the CI test timeout
mpretty-cyro Nov 21, 2023
f5f112a
More unit tests & disable XCBeautify for CI testing
mpretty-cyro Nov 21, 2023
4dd1199
More unit tests and reenable XCBeautify
mpretty-cyro Nov 21, 2023
9b21a0d
More unit tests, attempting to parallelize CI test running
mpretty-cyro Nov 22, 2023
11da191
CI build file formatting tweaks
mpretty-cyro Nov 22, 2023
5d2663c
CI multiline command formatting tweaks
mpretty-cyro Nov 22, 2023
d0e391f
Removed attempted multi-line formatting
mpretty-cyro Nov 22, 2023
d16cbca
Changes to the CI dependency chain
mpretty-cyro Nov 22, 2023
42f4925
Added more unit tests and resolve a minor edge case
mpretty-cyro Nov 22, 2023
ea45951
Renamed the release scheme to 'App_Store_Release' to help libSession …
mpretty-cyro Nov 23, 2023
db633e6
Reworked the SessionCell.Accessory (same interface, builds much quicker)
mpretty-cyro Nov 24, 2023
0d4866b
Added missing accessibility id, added null C exception handling, impr…
mpretty-cyro Nov 28, 2023
33a3a42
Reintegrated pods to fix app store build
mpretty-cyro Nov 28, 2023
bd09db8
Fixed a broken equality check
mpretty-cyro Nov 28, 2023
b2dcfce
Use the proper configuration in the CI script
mpretty-cyro Nov 28, 2023
aa9a6c4
Fixed a crash which could occur when handling a group update which ne…
mpretty-cyro Dec 1, 2023
fd13e17
Fixed an issue where blinded message requests were broken
mpretty-cyro Dec 1, 2023
87e9306
Added the resetSnodeCache to the dev settings (debug network issues)
mpretty-cyro Dec 14, 2023
842ae25
[TEST] Updated defaults to use Testnet and have updated groups enabled
mpretty-cyro Dec 15, 2023
59fc91b
Removed an unneeded 'recurringOnLaunch' job schedule
mpretty-cyro Jan 19, 2024
82a7396
Added shared history flag to GroupUpdateMemberChangeMessage
mpretty-cyro Jan 28, 2024
c862b0e
Fixed an issue where group invite auto accept wasn't sending a response
mpretty-cyro Jan 28, 2024
557ec36
Fixed a bug where a group could be reverted to the invited state
mpretty-cyro Jan 28, 2024
2fe4803
Added logic to verify the AuthData within a group invite
mpretty-cyro Jan 29, 2024
f13aa9c
Added a dev setting to invite a group member by AccountID or ONS
mpretty-cyro Jan 31, 2024
2fba138
Merge remote-tracking branch 'RyanFork/disappearing-message-redesign'…
mpretty-cyro Jan 31, 2024
65cb1be
Updated the accessibility identifiers as per requirements
mpretty-cyro Feb 1, 2024
b4648cd
Fixed a crash which could occur when getting kicked from a group
mpretty-cyro Feb 21, 2024
e5a4cac
Fixed a bug where group 'created' would override ugroups 'joinedAt' i…
mpretty-cyro Feb 27, 2024
7cc6e32
Merge remote-tracking branch 'origin/feature/drop-yap-database-suppor…
mpretty-cyro Feb 29, 2024
22e65c7
Added the ability to resend and delete non-accepted invites
mpretty-cyro Feb 29, 2024
b3f57bc
Updated accessibility ids as per documentation
mpretty-cyro Mar 1, 2024
cf8b17f
Fixed a "kicked from group" bug, cleaned up some logic, added 'curren…
mpretty-cyro Mar 1, 2024
b688a63
Added a missing accessibility id
mpretty-cyro Mar 4, 2024
da4cbaf
Updated the protos (removed the GroupUpdateDeleteMessage)
mpretty-cyro Apr 3, 2024
601ba9a
Objective-C Refactoring, Removed PureLayout, General Cleanup
mpretty-cyro May 6, 2024
72525ae
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro May 6, 2024
7f2508d
Fixed the build errors and unit tests
mpretty-cyro May 6, 2024
8500e1f
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro May 27, 2024
e89a77a
Replaced Cocoapods with Swift Package Manager for dependency management
mpretty-cyro Jun 27, 2024
9902162
Fixed the unit tests
mpretty-cyro Jun 28, 2024
fb2937f
Updated the CI script
mpretty-cyro Jun 28, 2024
f1ec4c9
Updated GRDB dependency with build fix
mpretty-cyro Jun 28, 2024
d26e546
Fixed the broken tests
mpretty-cyro Jun 28, 2024
304423f
Resolved a TODO I had missed
mpretty-cyro Jun 28, 2024
78daa2f
Fixed up a layout mistake
mpretty-cyro Jul 1, 2024
4871fb4
Fixed invalid python escape and added LOCAL_MIRROR arg to libSession
mpretty-cyro Jul 3, 2024
bfbfecf
Fixed a few c conversions which could crash if they failed
mpretty-cyro Jul 5, 2024
16f08bf
Fixed some missing dependencies and removed pod references
mpretty-cyro Jul 6, 2024
d6fe54e
Fixed the share extension and moved the WebRTC logic
mpretty-cyro Jul 9, 2024
d96ef57
Merge remote-tracking branch 'origin/feature/swift-package-manager' i…
mpretty-cyro Jul 10, 2024
f486a4e
Fixed issues with sending sync messages and uploading attachments
mpretty-cyro Jul 10, 2024
0002810
Merge remote-tracking branch 'origin/feature/swift-package-manager' i…
mpretty-cyro Jul 10, 2024
8620082
Finished up the remaining testing and added some more improvements
mpretty-cyro Jul 11, 2024
f1133a4
Progressed a bunch of changes to updated groups behaviours
mpretty-cyro Jul 12, 2024
04a0c7a
Progressing Groups Rebuild changes further
mpretty-cyro Jul 16, 2024
bbadc03
Merge remote-tracking branch 'RyanFork/strings' into feature/groups-r…
mpretty-cyro Oct 4, 2024
07f765b
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro Oct 6, 2024
41b3331
Simplified a little code, tested group invite/kicking, fixed edit gro…
mpretty-cyro Oct 7, 2024
fc612c1
Conversation settings tweaks and bug fixes (tests WIP)
mpretty-cyro Oct 7, 2024
ea95508
Fixed unit tests, minor code cleanup
mpretty-cyro Oct 8, 2024
e607693
Updated the group member removal process to remove messages as part o…
mpretty-cyro Oct 8, 2024
c1b11a6
Some code clean up and bug fixes
mpretty-cyro Oct 8, 2024
46533cb
Fixed a few TODOs and cleaned up some logic
mpretty-cyro Oct 10, 2024
dedff53
Fixed a crash and fixed a multithreading issue
mpretty-cyro Oct 10, 2024
a5c565c
Default community logic refactoring and bug fixes
mpretty-cyro Oct 11, 2024
42721db
Added additional developer settings and fixed some bugs
mpretty-cyro Oct 11, 2024
840e01d
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro Oct 11, 2024
f580205
Reverted the isRTL changes (preferred the old approach)
mpretty-cyro Oct 13, 2024
bbab933
Cleaned up the updated message deletion logic
mpretty-cyro Oct 14, 2024
f867226
Fixed the broken unit tests
mpretty-cyro Oct 14, 2024
ae323ff
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro Oct 15, 2024
a6e39d9
Added localisations for some strings and resolved a bunch of warnings
mpretty-cyro Oct 15, 2024
8bd2468
Profile info update change, RadioButton bugfix, unit test changes
mpretty-cyro Oct 15, 2024
98f7466
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
mpretty-cyro Oct 15, 2024
208d7aa
Removed FileSystem and use a properly injected FileManagerType everyw…
mpretty-cyro Oct 16, 2024
ad2c9ff
Fixed a number of bugs found when checking the acceptance criteria
mpretty-cyro Oct 16, 2024
f8377e6
Fixed an issue where the group was in the wrong state after destroyed
mpretty-cyro Oct 21, 2024
4ab99f8
Fixed some incorrect copy
mpretty-cyro Oct 21, 2024
7b70ba0
Fixed a couple of bugs revolving around handling group invitations
mpretty-cyro Oct 21, 2024
481ee65
Fixed a typo
mpretty-cyro Oct 21, 2024
fbc550b
Fixed another issue with the group member lists
mpretty-cyro Oct 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 5 additions & 15 deletions Scripts/EmojiGenerator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,6 @@ extension EmojiGenerator {
// Main enum: Create a string enum defining our enumNames equal to the baseEmoji string
// e.g. case grinning = "😀"
writeBlock(fileName: "Emoji.swift") { fileHandle in
fileHandle.writeLine("// swiftlint:disable all")
fileHandle.writeLine("// stringlint:disable")
fileHandle.writeLine("")
fileHandle.writeLine("/// A sorted representation of all available emoji")
fileHandle.writeLine("enum Emoji: String, CaseIterable, Equatable {")
Expand All @@ -293,7 +291,6 @@ extension EmojiGenerator {
}
}
fileHandle.writeLine("}")
fileHandle.writeLine("// swiftlint:disable all")
}
}

Expand Down Expand Up @@ -340,8 +337,6 @@ extension EmojiGenerator {
// if rawValue == "😀" { self.init(baseEmoji: .grinning, skinTones: nil) }
// else if rawValue == "🦻🏻" { self.init(baseEmoji: .earWithHearingAid, skinTones: [.light])
writeBlock(fileName: "EmojiWithSkinTones+String.swift") { fileHandle in
fileHandle.writeLine("// swiftlint:disable all")
fileHandle.writeLine("// stringlint:disable")
fileHandle.writeLine("")
fileHandle.writeLine("extension EmojiWithSkinTones {")
fileHandle.indent {
Expand Down Expand Up @@ -409,7 +404,6 @@ extension EmojiGenerator {
}
}
fileHandle.writeLine("}")
fileHandle.writeLine("// swiftlint:disable all")
}
}

Expand Down Expand Up @@ -474,8 +468,6 @@ extension EmojiGenerator {

static func writeSkinToneLookupFile(from emojiModel: EmojiModel) {
writeBlock(fileName: "Emoji+SkinTones.swift") { fileHandle in
fileHandle.writeLine("// swiftlint:disable all")
fileHandle.writeLine("// stringlint:disable")
fileHandle.writeLine("")
fileHandle.writeLine("extension Emoji {")
fileHandle.indent {
Expand Down Expand Up @@ -539,7 +531,6 @@ extension EmojiGenerator {
fileHandle.writeLine("}")
}
fileHandle.writeLine("}")
fileHandle.writeLine("// swiftlint:disable all")
}
}

Expand All @@ -556,8 +547,6 @@ extension EmojiGenerator {
]

writeBlock(fileName: "Emoji+Category.swift") { fileHandle in
fileHandle.writeLine("// swiftlint:disable all")
fileHandle.writeLine("// stringlint:disable")
fileHandle.writeLine("")
fileHandle.writeLine("extension Emoji {")
fileHandle.indent {
Expand Down Expand Up @@ -664,16 +653,13 @@ extension EmojiGenerator {
fileHandle.writeLine("}")
}
fileHandle.writeLine("}")
fileHandle.writeLine("// swiftlint:disable all")
}
}

static func writeNameLookupFile(from emojiModel: EmojiModel) {
// Name lookup: Create a computed property mapping an Emoji enum element to the raw Emoji name string
// e.g. case .grinning: return "GRINNING FACE"
writeBlock(fileName: "Emoji+Name.swift") { fileHandle in
fileHandle.writeLine("// swiftlint:disable all")
fileHandle.writeLine("// stringlint:disable")
fileHandle.writeLine("")
fileHandle.writeLine("extension Emoji {")
fileHandle.indent {
Expand All @@ -688,7 +674,6 @@ extension EmojiGenerator {
fileHandle.writeLine("}")
}
fileHandle.writeLine("}")
fileHandle.writeLine("// swiftlint:disable all")
}
}
}
Expand Down Expand Up @@ -753,6 +738,11 @@ extension EmojiGenerator {

fileHandle.writeLine("")
fileHandle.writeLine("// This file is generated by EmojiGenerator.swift, do not manually edit it.")
fileHandle.writeLine("//")
fileHandle.writeLine("// swiftlint:disable all")
fileHandle.writeLine("// stringlint:disable")
fileHandle.writeLine("")
fileHandle.writeLine("import Foundation")
fileHandle.writeLine("")

block(fileHandle)
Expand Down
52 changes: 50 additions & 2 deletions Scripts/LintLocalizableStrings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ extension ProjectState {
"_SharedTestUtilities/", // Exclude shared test directory
"external/" // External dependencies
]
static let excludedPhrases: Set<String> = [ "", " ", " ", ",", ", ", "null", "\"", "@[0-9a-fA-F]{66}", "^[0-9A-Fa-f]+$", "/" ]
static let excludedPhrases: Set<String> = [ "", " ", " ", ",", ", ", "null", "\"", "\"\\($0)\"", "@[0-9a-fA-F]{66}", "^[0-9A-Fa-f]+$", "/" ]
static let excludedUnlocalizedStringLineMatching: Set<MatchType> = [
.contains(ProjectState.lintSuppression, caseSensitive: false),
.prefix("#import", caseSensitive: false),
Expand All @@ -58,6 +58,16 @@ extension ProjectState {
.contains("print(", caseSensitive: false),
.contains("SNLog(", caseSensitive: false),
.contains("Log.setup(", caseSensitive: false),
.containsAnd(
"primaryPrefix:",
caseSensitive: false,
.previousLine(numEarlier: 1, .contains("Log.setup(with: Logger(", caseSensitive: false))
),
.containsAnd(
"customDirectory:",
caseSensitive: false,
.previousLine(numEarlier: 2, .contains("Log.setup(with: Logger(", caseSensitive: false))
),
.contains("Log.verbose(", caseSensitive: false),
.contains("Log.debug(", caseSensitive: false),
.contains("Log.info(", caseSensitive: false),
Expand All @@ -66,11 +76,15 @@ extension ProjectState {
.contains("Log.critical(", caseSensitive: false),
.contains("Log.Category =", caseSensitive: false),
.contains("logMessage:", caseSensitive: false),
.contains(".logging(", caseSensitive: false),
.contains("owsFailDebug(", caseSensitive: false),
.contains("error: .other(", caseSensitive: false),
.contains("#imageLiteral(resourceName:", caseSensitive: false),
.contains("UIImage(named:", caseSensitive: false),
.contains("UIImage(systemName:", caseSensitive: false),
.contains("[UIImage imageNamed:", caseSensitive: false),
.contains("Image(", caseSensitive: false),
.contains("logo:", caseSensitive: false),
.contains("UIFont(name:", caseSensitive: false),
.contains(".dateFormat =", caseSensitive: false),
.contains("accessibilityLabel =", caseSensitive: false),
Expand All @@ -80,6 +94,8 @@ extension ProjectState {
.contains("accessibilityLabel:", caseSensitive: false),
.contains("Accessibility(identifier:", caseSensitive: false),
.contains("Accessibility(label:", caseSensitive: false),
.contains(".withAccessibility(identifier:", caseSensitive: false),
.contains(".withAccessibility(label:", caseSensitive: false),
.contains("NSAttributedString.Key(", caseSensitive: false),
.contains("Notification.Name(", caseSensitive: false),
.contains("Notification.Key(", caseSensitive: false),
Expand All @@ -99,6 +115,21 @@ extension ProjectState {
caseSensitive: false,
.previousLine(numEarlier: 2, .contains("Accessibility(", caseSensitive: false))
),
.containsAnd(
"identifier:",
caseSensitive: false,
.previousLine(numEarlier: 1, .contains(".withAccessibility(", caseSensitive: false))
),
.containsAnd(
"label:",
caseSensitive: false,
.previousLine(numEarlier: 1, .contains(".withAccessibility(", caseSensitive: false))
),
.containsAnd(
"label:",
caseSensitive: false,
.previousLine(numEarlier: 2, .contains(".withAccessibility(", caseSensitive: false))
),
.contains("SQL(", caseSensitive: false),
.contains(" == ", caseSensitive: false),
.contains("forResource:", caseSensitive: false),
Expand All @@ -111,12 +142,29 @@ extension ProjectState {
.contains("separator:", caseSensitive: false),
.contains("separatedBy:", caseSensitive: false),
.nextLine(.contains(".put(key:", caseSensitive: false)),
.nextLine(
.containsAnd(
".put(",
caseSensitive: false,
.nextLine(.contains("key:", caseSensitive: false))
)
),
.nextLine(.contains(".putNumber(", caseSensitive: false)),
.nextLine(.contains(".localized()", caseSensitive: false)),
.contains(".localizedString(for:", caseSensitive: false),
.regex(".*static var databaseTableName: String"),
.regex("case .* = "),
.regex("Error.*\\("),
.belowLineContaining("PreviewProvider")
.belowLineContaining("PreviewProvider"),
.belowLineContaining("#Preview"),
.regex("Crypto.*\\(id:"),
.containsAnd("id:", caseSensitive: false, .previousLine(numEarlier: 1, .regex("Crypto.*\\("))),
.regex(".*\\.like\\(\".*%\""),
.containsAnd(
"identifier:",
caseSensitive: false,
.previousLine(numEarlier: 1, .contains("Dependencies.create", caseSensitive: false))
)
]
}

Expand Down
Loading