SwiftLint/tools
JP Simard 3a6436305b
Split SwiftLintFramework into multiple modules
* SwiftLintCore
* SwiftLintBuiltInRules
* SwiftLintExtraRules

Keep SwiftLintFramework as a wrapper around SwiftLintCore,
SwiftLintBuiltInRules and SwiftLintExtraRules.

This required making a number of `SwiftLintCore` declarations public
that previously were internal in SwiftLintFramework.

This significantly reduces the amount of time spent rebuilding
SwiftLintFramework or the SwiftLint CLI when working on rules outside of
the core SwiftLint API. In my testing, incremental compilation is over
twice as fast, with adding new rules taking 33s before and 12s after
this modularization.

This also has the benefit of custom external rules not be able to access
internal SwiftLint APIs. Now all rules, built-in or external, depend on
the public API of the SwiftLintCore module.

The SwiftLintBuiltInRules and SwiftLintExtraRules modules both make
SwiftLintCore's public API available to all their source files without
requiring an explicit `import` statement in that file. This is because
you nearly always want access to the core APIs when defining rules. It
also makes the migration leaner, requiring fewer changes.
2023-01-27 14:40:26 -05:00
..
BUILD Rename `script` directory to `tools` (#4141) 2022-08-29 01:16:20 -04:00
Version.swift.template Rename `script` directory to `tools` (#4141) 2022-08-29 01:16:20 -04:00
get-version Split SwiftLintFramework into multiple modules 2023-01-27 14:40:26 -05:00
info-macos.json.template Rename `script` directory to `tools` (#4141) 2022-08-29 01:16:20 -04:00
oss-check Revert "[OSSCheck] Cache git repos (#4699)" (#4718) 2023-01-23 17:05:15 +00:00
push-docs Rename `script` directory to `tools` (#4141) 2022-08-29 01:16:20 -04:00
test-analyze.sh Add support for bzlmod (#4704) 2023-01-19 17:04:21 -05:00
update-artifact-bundle.sh Fix `Package.swift` 2022-12-09 14:08:08 -05:00
update-swift-syntax.sh Pin SwiftSyntax to a tagged version (#4674) 2023-01-06 13:10:59 -05:00