Commit Graph

72 Commits

Author SHA1 Message Date
Danny Mösch 9fbc04ecba Rewrite void_return rule with SwiftSyntax (#5351) 2023-11-15 07:13:36 +01:00
Danny Mösch 1603f4ab55 Remove filter that is assuming classes cannot be nested inside of extensions (#5344) 2023-11-11 14:28:16 +01:00
Kabir Oberai 92679e230d Fix implicit_getter false positive in case of unknown accessors (#5300) 2023-11-09 09:14:16 +01:00
Marcelo Fabri da597eaeca Add example for #3581 (#5334)
Fixes #3581
2023-11-07 09:26:15 +00:00
Marcelo Fabri 020a0e119a Rewrite vertical_parameter_alignment_on_call using SwiftSyntax (#5332) 2023-11-07 01:09:45 -08:00
JP Simard 3eb3772022 Compile with -strict-concurrency=complete (#5320)
* Compile with `-strict-concurrency=complete`

Only in Bazel for now, because this is considered an unsafe flag in
SwiftPM which would lead to warnings for downstream consumers of
SwiftLint using SwiftPM.

Some imports of SwiftSyntax need the `@preconcurrency` annotation until
https://github.com/apple/swift-syntax/pull/2322 is available in a
release.

The following SwiftLint libraries have `-strict-concurrency=complete`
applied:

* SwiftLintCoreMacros
* SwiftLintBuiltInRules
* SwiftLintExtraRules

The following SwiftLint libraries don't have the flag applied and need
to be migrated:

* SwiftLintCore
* swiftlint (CLI target)

So really the rules and macros are now being compiled with
`-strict-concurrency=complete`, but the core infrastructure of SwiftLint
is not.

Still, given that Swift 6 will eventually make these warnings errors by
default, it's good to prevent issues from creeping in earlier rather
than later.

* Add CI job to build with strict concurrency
2023-11-01 15:20:40 +00:00
uabyss 6dc4b86f98 Added viewIsAppearing in viewLifecycleMethodNames (#5316) 2023-11-01 08:48:49 -04:00
Marcelo Fabri 8e34619576 Speed up closure_parameter_position when there are no violations (#5302) 2023-10-27 08:55:46 -07:00
Danny Mösch 4c0f33782c Check disabled regions for all syntax types in parent rewriter class (#5292) 2023-10-23 15:34:51 -04:00
Danny Mösch 5ec1de0312 Generate makeRewriter optionally (#5281) 2023-10-17 15:19:19 -04:00
Danny Mösch 57632017e4 Introduce parent class for rewriters (#5282) 2023-10-17 18:55:02 +02:00
Danny Mösch 40bd97038a Support arbitrary configurations in @SwiftSyntaxRule (#5275)
Almost all rules based on SwiftSyntax can be set up now by just adding
`@SwiftSyntaxRule` to the rule struct.
2023-10-16 19:34:43 +02:00
Danny Mösch 2ed1fc2f27 Let all rules be configurable (#5274) 2023-10-12 17:30:45 +02:00
Danny Mösch 58928b7e40 Enforce any on existential types (#5273)
This makes syntactically clear which types are rather expensive.
2023-10-12 08:37:23 +02:00
Danny Mösch 6438c77b96 Harmonize rule extensions (#5272) 2023-10-11 19:39:38 +02:00
Danny Mösch f6e5f778fc Configure expression folding by argument of @SwiftSyntaxRule macro (#5255) 2023-10-03 07:16:33 -04:00
JP Simard 591154091e Introduce @SwiftSyntaxRule & @Fold macros (#5253)
These macros remove some of the boilerplate involved when writing rules.

This change also adds test infrastructure for the macros used within
SwiftLint.
2023-10-02 18:43:16 -04:00
Danny Mösch 2433e7b5bf Make use of macros to generate configuration parsing code (#5250) 2023-10-02 22:35:24 +02:00
Danny Mösch 68b27d8310 Inline conditional examples requiring Swift 5.9 (#5249) 2023-09-30 09:56:54 -04:00
Danny Mösch 075017cba5 Merge modifier extensions into one (#5234) 2023-09-24 23:50:10 +02:00
Danny Mösch d6b3f69804 Support switch expressions in switch_case_alignment rule (#5229)
The position of the closing brace now defines the alignment.
2023-09-20 17:43:01 -04:00
Danny Mösch 35a78815d1 Update SwiftSyntax (#5198) 2023-09-14 22:49:55 +02:00
Kishikawa Katsumi 05818b5375 Respect grapheme clusters in the collection_alignment rule (#5173)
Do so by counting characters. Solves (to some extent) the problem of apparent character counts not matching the UTF-8-based offsets returned by SwiftSyntax.
2023-09-11 19:45:53 +02:00
Danny Mösch 02640a3415 Rewrite implicit_return rule using SwiftSyntax (#5166) 2023-09-02 14:32:37 +02:00
Danny Mösch e82fad944d Avoid monospaced rendering of description (#5202) 2023-09-02 05:52:28 -04:00
Danny Mösch 7504d54acd Use general rewrite infrastructure (#5201) 2023-09-02 05:28:16 -04:00
Danny Mösch be83b486ca Generalize alternative way to rewrite code (#5163) 2023-08-31 17:00:07 -04:00
Danny Mösch b281a8d33a Update SwiftSyntax (#5168) 2023-08-30 22:57:10 +02:00
Danny Mösch 20b7ce2cd2 Skip switch expressions used as child expressions in switch_case_alignment rule (#5193) 2023-08-28 20:24:59 +02:00
Danny Mösch 9f927e9d9b Add new non_overridable_class_declaration rule (#5160) 2023-08-28 13:34:09 -04:00
Danny Mösch 1f65377f9c Remove more superfluous newline characters from examples (#5159) 2023-08-06 23:44:52 +02:00
Danny Mösch f10fc3056b Remove superfluous newline characters from examples (#5158) 2023-08-06 12:23:26 -04:00
Danny Mösch 85c4a3a03d Revert "Allow to initialize Examples by string literals (#5154)" (#5155)
This reverts commit 56461c3ab4.
2023-08-04 00:03:26 +02:00
Danny Mösch 56461c3ab4 Allow to initialize Examples by string literals (#5154) 2023-08-03 23:03:41 +02:00
Danny Mösch 8effdd35f0 Reduce number of examples (#5152) 2023-08-01 16:38:00 -04:00
Danny Mösch 77c5a3cc75 Fix false positive in control_statement rule rewriting it with SwiftSyntax (#5141) 2023-07-23 17:48:40 -04:00
Christian Panetta bf8edaaeff Improve violation message for attributes rule (#5108) 2023-07-15 15:47:11 +02:00
Danny Mösch 205e5a90d3 Ignore initializers of computed properties in prefer_self_in_static_references rule (#5119) 2023-07-14 22:44:44 +02:00
Danny Mösch 5d0168ad66 Defined order of examples (#5106)
* Exclude example with configuration from documentation

* Ensure a fixed order for examples
2023-07-06 15:18:39 -04:00
Kasra Babaei 488182ae1b Do not trigger prefer_self_in_static_references on classes used as generics (#5084) 2023-07-04 21:40:57 +02:00
Danny Mösch f6a41b6fb6 Fix typo (#5087) 2023-07-01 16:42:07 -04:00
Danny Mösch 834e532700 Ignore switch expressions assigned to variables in switch_case_alignment rule (#5086) 2023-07-01 16:40:34 -04:00
Martin Redington ce255bbae9 Fix correction of direct_return rule for cases with trailing comments (#5083) 2023-06-26 21:55:31 +02:00
Danny Mösch 33545d2f4b Add configuration for unallowed symbols severity (#5066) 2023-06-22 10:42:41 -04:00
Martin Redington 0693d547b0 Add new unneeded_synthesized_initializer rule (#4812) 2023-06-21 22:15:02 +02:00
Danny Mösch 3ec9bc85bc Inline variables 2023-06-18 12:01:28 +02:00
Danny Mösch f5ea2492dc Merge allowed symbols with alphanumerics where possible 2023-06-18 12:01:28 +02:00
Danny Mösch b89e43a799 Make sure case check can be disabled by new off option value (#5064) 2023-06-17 22:27:57 +02:00
Danny Mösch c8cd311615 Collapse conditional statements into single expression 2023-06-13 23:24:48 +02:00
Danny Mösch ba42a6aa36 Extract examples 2023-06-13 23:24:48 +02:00