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
Scott Hoyt
d300eec7cf
Added ConfigurationProviderRule
2016-01-23 17:42:13 -08:00
Scott Hoyt
e5cbd81002
Switched out count > 0 with !isEmpty.
2016-01-13 19:45:27 -08:00
Scott Hoyt
f693279fb5
Removed ParameterizedRule. Deleted unnecessary tests. Switched tests to ViolationLevelRuleMock where needed.
2016-01-13 19:45:27 -08:00
Scott Hoyt
7c6feec509
Added ViolationLevelRule and tests.
2016-01-13 19:45:27 -08:00
Scott Hoyt
592a358d8c
Added deprecation warning for ParameterizedRule.
2016-01-13 19:45:27 -08:00
JP Simard
2f3b2096e6
support opt-in rules
2016-01-12 12:11:09 -08:00
Scott Hoyt
47f4889cb2
Removed redundant self.
2016-01-11 13:55:36 -08:00
Scott Hoyt
647371517e
Extracted arrayOf to Array extension and used to simplify VariableNameMinLengthRule.init?(config:).
2016-01-11 13:10:17 -08:00
Scott Hoyt
55fa348b6d
Made ParameterizedRule protocol inherit from ConfigurableRule with default implementation for conformance.
2016-01-11 11:21:49 -08:00
Scott Hoyt
46838b11f1
Fixed access level issues.
2016-01-11 11:21:49 -08:00
Scott Hoyt
d3184c9e28
Switched ParameterizedRule.init?(config:) to use a guard instead of if/else.
2016-01-11 11:21:49 -08:00
Scott Hoyt
811b625243
Generalized ParameterizedRule protocol conformance to ConfigurableRule.
2016-01-11 11:21:49 -08:00
Scott Hoyt
29cad2972a
Removed TODOs
2016-01-11 11:21:49 -08:00
Scott Hoyt
b654dc0c8b
Clean up some linting warnings.
2016-01-11 11:21:49 -08:00
Scott Hoyt
7efb020a4b
Added tests for configuring rules from config dictionary.
2016-01-11 11:21:49 -08:00
Scott Hoyt
fa7d4024e3
Switched Configurable rule to a failable initializer that takes AnyObject.
2016-01-11 11:21:49 -08:00
Scott Hoyt
c2d40c1f94
Extracted all ParameterizedRule conformance to ConfigurableRule out to protocol extension.
2016-01-11 11:21:49 -08:00
Scott Hoyt
3387c0d592
Extracted isEqualTo to protocol extension.
2016-01-11 11:21:49 -08:00
Scott Hoyt
9b6f3070a3
Wrote ConfigurableRule, made ParameterizedRule's conform, moved configuration into rules themselves.
2016-01-11 11:21:49 -08:00
Scott Hoyt
7b2f4bff43
Moved == implementation for [Rule] to more appropriate spot. Wrote missing test.
2016-01-02 15:41:53 -08:00
Scott Hoyt
fcf9396a08
Added isEqual for Rule and ParameterizedRule. Made Configuration and RuleParameter conform to Equatable. Wrote tests to verify. All done in support of testing recursive configuration file search.
2016-01-02 15:41:53 -08:00