SwiftLint/Source/SwiftLintFramework/Rules/RuleConfigurations
JP Simard d10ccacb45
Add unused_import config options to require imports for each module used (#3123)
For example, if `CGFloat` is used in a file where only `UIKit` is imported but not `CoreGraphics`, this will be a violation even if the file previously compiled.

This is because Swift allows referencing some declarations that are only transitively imported.

Enabling the `require_explicit_imports` configuration option will require that the module of every declaration referenced in a source file be explicitly imported.

This will add significant noise to the imports list, but has a few advantages:

1. It will be easier to understand all the dependencies explicitly referenced in a source file.
2. Correcting the `unused_import` rule will no longer introduce compilation errors in files that compiled prior to the correction.

If missing imports are added to a file when correcting it, the `sorted_imports` rule will be automatically run on that file.

If you with to allow some imports to be implicitly importable transitively, you may specify the `allowed_transitive_imports` configuration:

```yaml
unused_import:
  require_explicit_imports: true
  allowed_transitive_imports:
    - module: Foundation
      allowed_transitive_imports:
        - CoreFoundation
        - Darwin
        - ObjectiveC
```
2020-02-22 14:39:07 -08:00
..
AttributesConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
CollectionAlignmentConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
ColonConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
ConditionalReturnsOnNewlineConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
CyclomaticComplexityConfiguration.swift Enable some opt-in rules (#2801) 2019-08-28 14:49:23 -07:00
DeploymentTargetConfiguration.swift Remove unused import 2019-01-24 22:28:45 -08:00
DiscouragedDirectInitConfiguration.swift Enable some opt-in rules (#2801) 2019-08-28 14:49:23 -07:00
EmptyCountConfiguration.swift Empty count configuration (#3052) 2020-02-09 15:12:54 -08:00
ExpiringTodoConfiguration.swift Add ExpiringTodoRule (#2911) 2019-11-20 16:50:29 -08:00
ExplicitTypeInterfaceConfiguration.swift Enable vertical whitespace rules in SwiftLint 2018-12-02 14:01:23 -08:00
FileHeaderConfiguration.swift Use SwiftLintFile wrapper over the File 2019-11-07 15:19:17 +02:00
FileLengthRuleConfiguration.swift [Docs] Build docs using jazzy (#3016) 2020-01-07 20:31:29 -08:00
FileNameConfiguration.swift File name console description (#3010) 2020-01-03 14:00:17 -08:00
FileNameNoSpaceConfiguration.swift Added 'file_name_no_space' rule (#3008) 2020-01-03 15:45:30 -08:00
FileTypesOrderConfiguration.swift Synthesize Equatable implementations where possible (#2790) 2019-07-01 17:22:18 -04:00
FunctionParameterCountConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
ImplicitReturnConfiguration.swift ImplicitReturnConfiguration description now reports current config (#3083) 2020-02-08 01:55:58 -08:00
ImplicitlyUnwrappedOptionalConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
IndentationWidthConfiguration.swift Fix modifier order 2020-01-06 08:30:49 +01:00
LineLengthConfiguration.swift Fix docstring formatting issues using DrString (#3032) 2020-01-12 11:19:33 -08:00
MissingDocsRuleConfiguration.swift Enable vertical whitespace rules in SwiftLint 2018-12-02 14:01:23 -08:00
ModifierOrderConfiguration.swift Add documentation comments to all public declarations (#3027) 2020-01-08 09:47:10 -08:00
MultilineArgumentsConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
NameConfiguration.swift Require Swift 5.0 to build (#2857) 2019-09-03 11:42:57 -04:00
NestingConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
NumberSeparatorConfiguration.swift [number_separator] Add more non-triggering examples + Rename option to exclude_ranges 2019-02-14 21:19:15 +01:00
ObjectLiteralConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
OverridenSuperCallConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
PrefixedConstantRuleConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
PrivateOutletRuleConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
PrivateOverFilePrivateRuleConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
PrivateUnitTestConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
ProhibitedSuperConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
RegexConfiguration.swift Add capture_group option to custom_rules 2020-01-05 15:24:11 -08:00
RequiredEnumCaseRuleConfiguration.swift #2441 - Fix inaccessible custom rules in nested configurations (#2556) 2019-01-13 15:07:27 -08:00
SeverityConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
SeverityLevelsConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
StatementModeConfiguration.swift Enable vertical whitespace rules in SwiftLint 2018-12-02 14:01:23 -08:00
SwitchCaseAlignmentConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
TrailingClosureConfiguration.swift Add `only_single_muted_parameter` configuration on `trailing_closure 2019-01-17 22:02:47 -08:00
TrailingCommaConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
TrailingWhitespaceConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
TypeContentsOrderConfiguration.swift Add deinitializer to type_contents_order (#3042) 2020-01-16 16:49:37 -08:00
UnusedDeclarationConfiguration.swift Add UnusedDeclarationRule (#2814) 2019-07-18 18:23:43 -07:00
UnusedImportConfiguration.swift Add unused_import config options to require imports for each module used (#3123) 2020-02-22 14:39:07 -08:00
UnusedOptionalBindingConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
VerticalWhitespaceConfiguration.swift Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00