Danny Mösch
d730e0b3fa
Let all example verification tests be generated by Sourcery ( #4076 )
2022-08-10 22:49:28 +02:00
Danny Mösch
449190d324
Verify examples in rules by default and enforce explicit exclusion ( #4065 )
...
A rule must conform to ManuallyTestedExamplesRule to skip generation of a test for its examples.
2022-08-09 22:32:09 +02:00
Paul Taykalo
693ee2cae9
Add Isnot Empty extension in the Swift Framework ( #3387 )
2020-11-07 18:42:55 -05:00
Marcelo Fabri
f8ef7d649c
Enable legacy_multiple and prefer_self_type_over_type_of_self in our codebase
2020-08-05 01:11:17 -07:00
JP Simard
399f5b7df6
Fix docstring formatting issues using DrString ( #3032 )
...
Using command:
$ drstring check -i 'Source/**/*.swift' --first-letter lowercase --vertical-align
2020-01-12 11:19:33 -08:00
JP Simard
37167a8a35
Add documentation comments to all public declarations ( #3027 )
2020-01-08 09:47:10 -08:00
Max Härtwig
44b04f377d
Allow SubstitutionCorrectableRule to return nil instead of a correction to indicate that a suitable correction couldn't be found for a specific case ( #2958 )
2020-01-02 23:15:40 -08:00
Paul Taykalo
a52a94c987
Use Generic Dictionary Traversing for multiple cases
2019-11-09 13:29:43 -08:00
Paul Taykalo
523b2618c1
Update SubstitutionCorrectableASTRule for using inout array when traversing dictionaries
2019-11-09 13:29:42 -08:00
Paul Taykalo
ac40778cb3
Use SwiftLintFile wrapper over the File
2019-11-07 15:19:17 +02:00
Paul Taykalo
b1cdc119ec
Use swift enums instead of raw values
2019-11-07 11:05:19 +02:00
Paul Taykalo
b901c670d4
Cache file structure dictionary
2019-11-07 08:50:50 +02:00
Paul Taykalo
8c963d2c15
Working solution with SouceKittenDictionary wrapper
2019-11-07 08:50:50 +02:00
Elliott Williams
3d5239429e
Add AnyCollectingRule and isCollecting
...
All CollectingRules implement AnyCollectingRule, which is used to check
whether a linter will perform any collections and only print the
"Collecting" log message if so.
2019-07-18 14:59:42 -07:00
Elliott Williams
f277fbe5d2
Make RuleStorage have dictionary semantics and check for collected info inside Rule
2019-07-18 14:59:42 -07:00
Elliott Williams
ddee9c8e6b
Refactor spacing, indenting, and rename collect to collectInfo
2019-07-18 14:59:42 -07:00
Elliott Williams
01ea736a46
Add CollectingRule to support arbitrary pre-lint collection
2019-07-18 14:59:42 -07:00
Marcelo Fabri
5a0bf55f74
PR feedback
2019-01-27 14:04:24 -08:00
Marcelo Fabri
a174126f28
Add missing import
2019-01-27 12:44:52 -08:00
Marcelo Fabri
5d4923f568
Add SubstitutionCorrectableRule and SubstitutionCorrectableASTRule
2019-01-27 12:32:10 -08:00
Marcelo Fabri
1f121b1ef7
Enable static_operator opt-in rule in SwiftLint
2018-09-16 20:33:28 -07:00
JP Simard
2bcea4b04d
Add ability for SwiftLint to lint files with full type-checked AST awareness ( #2379 )
...
* Add LintableFilesVisitor
* Move LintCommand logic into LintOrAnalyzeCommand
to prepare for the upcoming analyze command
* Add AnalyzeCommand (not fully implemented yet in SwiftLintFramework)
* Add analyzerRules configuration member
* Add AnalyzerRule protocol
* Pass compiler arguments to validate/correct
* Add requiresFileOnDisk member to RuleDescription
This will be used by AnalyzerRules because they need a file on disk
to pass in the compiler arguments to SourceKit.
* Exclusively run AnalyzerRules when the Linter has compiler arguments
* Enable testing AnalyzerRules in TestHelpers
* Add ExplicitSelfRule
* Update documentation
* Fix `analyze --autocorrect`
* Improve performance of CompilerArgumentsExtractor
* Fix lint command actually running analyze
* Move File operations in TestHelpers into a private extension
* Add analyzer column to rules command and markdown documentation
* Use a Set literal
* Make AnalyzerRule inherit from OptInRule
* Mention analyzer_rules in readme
* Mention that analyzer rules are slow
2018-09-02 00:13:27 -07:00
Marcelo Fabri
8aadb802fb
Split RulesTests into several test cases, generating them automatically
2018-07-21 17:23:08 -07:00
JP Simard
2eed8d469d
Apply Marcelo Fabri's patch
2018-05-06 10:33:33 -07:00
John Szumski
b03b4f0891
Added a new computed property that identifies whether a rule should treat multiple violations at the same location as only one violation.
2018-05-06 10:33:33 -07:00
JP Simard
b83e0991b9
Remove all file headers
...
The MIT license doesn't require that all files be prepended with this
licensing or copyright information. Realm confirmed that they're ok with this
change. This will enable some companies to contribute to SwiftLint and the
date & authorship information will remain accessible via git source control.
2018-05-04 13:42:02 -07:00
JP Simard
a49835728b
Speed up equality checks for [Rule] values
2017-10-19 22:28:04 -07:00
Marcelo Fabri
c01f4bd19f
Enable extension_access_modifier rule
2017-07-21 21:08:52 +02:00
JP Simard
e54dcae5b7
enable let_var_whitespace rule in SwiftLint itself
...
and refactor code in a few places to conform to the rule
2017-07-10 15:42:55 -07:00
JP Simard
f639ae95f1
add CacheDescriptionProvider protocol
...
to provide more complete descriptions for cache invalidation
purposes.
2017-05-18 14:31:33 -07:00
JP Simard
9e7cdc3282
update SwiftLintFramework/Protocols to follow Swift 3 API Design Guidelines
2017-01-09 19:19:25 -08:00
Marcelo Fabri
13b0cfe623
Fixing inconsistencies
2016-12-08 18:29:57 -02:00
Norio Nomura
8bf15f1dba
Migrate to Swift 3.0
2016-10-09 01:09:50 +09:00
Norio Nomura
9c0a2492e8
Refactor ASTRule and add SourceKitFreeRule
...
- Make `ASTRule` to generic and remove `ASTBaseRule`
- Add `SourceKitFreeRule` and remove `RuleDescription.needsSourceKit`
2016-04-16 22:32:53 +09:00
Norio Nomura
e1e4923867
Use for Xcode 7.3
2016-04-07 23:17:11 +09:00
JP Simard
b2d954f655
rename ConfigType to ConfigurationType
2016-02-12 10:53:36 -08:00
JP Simard
7e07e813ca
rename RuleConfig to RuleConfiguration
2016-02-12 10:53:36 -08:00
JP Simard
6befe7e5a4
expand many instances of "config" to "configuration"
2016-02-12 10:53:36 -08:00
JP Simard
d9cd1d670a
rename Rule.init(config:) to Rule.init(configuration:)
2016-02-12 10:53:36 -08:00
JP Simard
db71448c47
rename Rule.configDescription to Rule.configurationDescription
2016-02-12 10:53:36 -08:00
JP Simard
3f4b993847
rename ConfigProviderRule to ConfigurationProviderRule
2016-02-12 10:53:36 -08:00
JP Simard
1866edae77
adjust access control levels for many APIs in SwiftLintFramework
...
this is done in an effort to stabilize the API for SwiftLint 1.0.
2016-02-10 17:26:06 -08:00
JP Simard
368ee9544a
fold ConfigurableRule into Rule
2016-02-08 13:08:51 -08:00
JP Simard
71135c6a4b
make RulesCommand show a configuration description for all rules
2016-02-07 10:40:51 -08:00
JP Simard
b2a7b707ab
print rule configuration
2016-02-03 10:31:53 -08:00
Scott Hoyt
943ed306a3
Modified names for brevity.
2016-01-23 17:42:13 -08:00
Scott Hoyt
3230c6413e
Replaced things in rule configurations named configuration for config to save space.
2016-01-23 17:42:13 -08:00
Scott Hoyt
05a65afc72
Removed ViolationLeveLRule in favor of ConfigurationProviderRule.
2016-01-23 17:42:13 -08:00
Scott Hoyt
d2ec3fb621
Added associated type for ConfigurationProviderRule.
2016-01-23 17:42:13 -08:00
Scott Hoyt
ccbcb537b5
Convert ConfigurableRule to throwing init instead of failing.
2016-01-23 17:42:13 -08:00