Use `SeverityBasedRuleConfiguration` where possible (#5019)
This commit is contained in:
parent
07740506b5
commit
7fd22e0d6e
|
@ -23,7 +23,7 @@ struct FileNameNoSpaceRule: ConfigurationProviderRule, OptInRule, SourceKitFreeR
|
|||
}
|
||||
|
||||
return [StyleViolation(ruleDescription: Self.description,
|
||||
severity: configuration.severity.severity,
|
||||
severity: configuration.severity,
|
||||
location: Location(file: filePath, line: 1))]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ struct FileNameRule: ConfigurationProviderRule, OptInRule, SourceKitFreeRule {
|
|||
}
|
||||
|
||||
return [StyleViolation(ruleDescription: Self.description,
|
||||
severity: configuration.severity.severity,
|
||||
severity: configuration.severity,
|
||||
location: Location(file: filePath, line: 1))]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ struct UnusedImportRule: CorrectableRule, ConfigurationProviderRule, AnalyzerRul
|
|||
func validate(file: SwiftLintFile, compilerArguments: [String]) -> [StyleViolation] {
|
||||
return importUsage(in: file, compilerArguments: compilerArguments).map { importUsage in
|
||||
StyleViolation(ruleDescription: Self.description,
|
||||
severity: configuration.severity.severity,
|
||||
severity: configuration.severity,
|
||||
location: Location(file: file, characterOffset: importUsage.violationRange?.location ?? 1),
|
||||
reason: importUsage.violationReason)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct ColonConfiguration: RuleConfiguration, Equatable {
|
||||
struct ColonConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var flexibleRightSpacing = false
|
||||
private(set) var applyToDictionaries = true
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Foundation
|
||||
import SourceKittenFramework
|
||||
|
||||
struct FileHeaderConfiguration: RuleConfiguration, Equatable {
|
||||
struct FileHeaderConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private static let fileNamePlaceholder = "SWIFTLINT_CURRENT_FILENAME"
|
||||
private static let stringRegexOptions: NSRegularExpression.Options = [.ignoreMetacharacters]
|
||||
private static let patternRegexOptions: NSRegularExpression.Options =
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
struct FileNameConfiguration: RuleConfiguration, Equatable {
|
||||
struct FileNameConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
var consoleDescription: String {
|
||||
return "(severity) \(severity.consoleDescription), " +
|
||||
return "(severity) \(severityConfiguration.consoleDescription), " +
|
||||
"excluded: \(excluded.sorted()), " +
|
||||
"prefix_pattern: \(prefixPattern), " +
|
||||
"suffix_pattern: \(suffixPattern), " +
|
||||
"nested_type_separator: \(nestedTypeSeparator)"
|
||||
}
|
||||
|
||||
private(set) var severity: SeverityConfiguration
|
||||
private(set) var severityConfiguration: SeverityConfiguration
|
||||
private(set) var excluded: Set<String>
|
||||
private(set) var prefixPattern: String
|
||||
private(set) var suffixPattern: String
|
||||
|
@ -15,7 +15,7 @@ struct FileNameConfiguration: RuleConfiguration, Equatable {
|
|||
|
||||
init(severity: ViolationSeverity, excluded: [String] = [],
|
||||
prefixPattern: String = "", suffixPattern: String = "\\+.*", nestedTypeSeparator: String = ".") {
|
||||
self.severity = SeverityConfiguration(severity)
|
||||
self.severityConfiguration = SeverityConfiguration(severity)
|
||||
self.excluded = Set(excluded)
|
||||
self.prefixPattern = prefixPattern
|
||||
self.suffixPattern = suffixPattern
|
||||
|
@ -27,8 +27,8 @@ struct FileNameConfiguration: RuleConfiguration, Equatable {
|
|||
throw Issue.unknownConfiguration
|
||||
}
|
||||
|
||||
if let severityConfiguration = configurationDict["severity"] {
|
||||
try severity.apply(configuration: severityConfiguration)
|
||||
if let severity = configurationDict["severity"] {
|
||||
try severityConfiguration.apply(configuration: severity)
|
||||
}
|
||||
if let excluded = [String].array(of: configurationDict["excluded"]) {
|
||||
self.excluded = Set(excluded)
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
struct FileNameNoSpaceConfiguration: RuleConfiguration, Equatable {
|
||||
struct FileNameNoSpaceConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
var consoleDescription: String {
|
||||
return "(severity) \(severity.consoleDescription), " +
|
||||
return "(severity) \(severityConfiguration.consoleDescription), " +
|
||||
"excluded: \(excluded.sorted())"
|
||||
}
|
||||
|
||||
private(set) var severity: SeverityConfiguration
|
||||
private(set) var severityConfiguration: SeverityConfiguration
|
||||
private(set) var excluded: Set<String>
|
||||
|
||||
init(severity: ViolationSeverity, excluded: [String] = []) {
|
||||
self.severity = SeverityConfiguration(severity)
|
||||
self.severityConfiguration = SeverityConfiguration(severity)
|
||||
self.excluded = Set(excluded)
|
||||
}
|
||||
|
||||
|
@ -17,8 +17,8 @@ struct FileNameNoSpaceConfiguration: RuleConfiguration, Equatable {
|
|||
throw Issue.unknownConfiguration
|
||||
}
|
||||
|
||||
if let severityConfiguration = configurationDict["severity"] {
|
||||
try severity.apply(configuration: severityConfiguration)
|
||||
if let severity = configurationDict["severity"] {
|
||||
try severityConfiguration.apply(configuration: severity)
|
||||
}
|
||||
if let excluded = [String].array(of: configurationDict["excluded"]) {
|
||||
self.excluded = Set(excluded)
|
||||
|
|
|
@ -6,7 +6,7 @@ enum FileType: String {
|
|||
case libraryContentProvider = "library_content_provider"
|
||||
}
|
||||
|
||||
struct FileTypesOrderConfiguration: RuleConfiguration, Equatable {
|
||||
struct FileTypesOrderConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var order: [[FileType]] = [
|
||||
[.supportingType],
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct ImplicitReturnConfiguration: RuleConfiguration, Equatable {
|
||||
struct ImplicitReturnConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
enum ReturnKind: String, CaseIterable {
|
||||
case closure
|
||||
case function
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct IndentationWidthConfiguration: RuleConfiguration, Equatable {
|
||||
struct IndentationWidthConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
var consoleDescription: String {
|
||||
return "severity: \("severity: \(severityConfiguration.consoleDescription)"), "
|
||||
+ "indentation_width: \(indentationWidth), "
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import SourceKittenFramework
|
||||
|
||||
struct ModifierOrderConfiguration: RuleConfiguration, Equatable {
|
||||
struct ModifierOrderConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var preferredModifierOrder = [SwiftDeclarationAttributeKind.ModifierGroup]()
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ private enum ConfigurationKey: String {
|
|||
case onlyEnforceAfterFirstClosureOnFirstLine = "only_enforce_after_first_closure_on_first_line"
|
||||
}
|
||||
|
||||
struct MultilineArgumentsConfiguration: RuleConfiguration, SeverityBasedRuleConfiguration, Equatable {
|
||||
struct MultilineArgumentsConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
enum FirstArgumentLocation: String {
|
||||
case anyLine = "any_line"
|
||||
case sameLine = "same_line"
|
||||
|
|
|
@ -3,7 +3,7 @@ private enum ConfigurationKey: String {
|
|||
case allowMultilineFunc = "allow_multiline_func"
|
||||
}
|
||||
|
||||
struct OpeningBraceConfiguration: RuleConfiguration, Equatable {
|
||||
struct OpeningBraceConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var allowMultilineFunc = false
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct OperatorUsageWhitespaceConfiguration: RuleConfiguration, Equatable {
|
||||
struct OperatorUsageWhitespaceConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var linesLookAround = 2
|
||||
private(set) var skipAlignedConstants = true
|
||||
|
|
|
@ -12,14 +12,14 @@ enum StatementModeConfiguration: String {
|
|||
}
|
||||
}
|
||||
|
||||
struct StatementConfiguration: RuleConfiguration, Equatable {
|
||||
struct StatementConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
var consoleDescription: String {
|
||||
return "(statement_mode) \(statementMode.rawValue), " +
|
||||
"(severity) \(severity.consoleDescription)"
|
||||
"(severity) \(severityConfiguration.consoleDescription)"
|
||||
}
|
||||
|
||||
var statementMode: StatementModeConfiguration
|
||||
var severity: SeverityConfiguration
|
||||
var severityConfiguration: SeverityConfiguration
|
||||
|
||||
mutating func apply(configuration: Any) throws {
|
||||
guard let configurationDict = configuration as? [String: Any] else {
|
||||
|
@ -28,8 +28,8 @@ struct StatementConfiguration: RuleConfiguration, Equatable {
|
|||
if let statementModeConfiguration = configurationDict["statement_mode"] {
|
||||
try statementMode = StatementModeConfiguration(value: statementModeConfiguration)
|
||||
}
|
||||
if let severityConfiguration = configurationDict["severity"] {
|
||||
try severity.apply(configuration: severityConfiguration)
|
||||
if let severity = configurationDict["severity"] {
|
||||
try severityConfiguration.apply(configuration: severity)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct TrailingClosureConfiguration: RuleConfiguration, Equatable {
|
||||
struct TrailingClosureConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var onlySingleMutedParameter: Bool
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct TrailingWhitespaceConfiguration: RuleConfiguration, Equatable {
|
||||
struct TrailingWhitespaceConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
var severityConfiguration = SeverityConfiguration(.warning)
|
||||
var ignoresEmptyLines = false
|
||||
var ignoresComments = true
|
||||
|
|
|
@ -16,7 +16,7 @@ enum TypeContent: String {
|
|||
case deinitializer = "deinitializer"
|
||||
}
|
||||
|
||||
struct TypeContentsOrderConfiguration: RuleConfiguration, Equatable {
|
||||
struct TypeContentsOrderConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var order: [[TypeContent]] = [
|
||||
[.case],
|
||||
|
|
|
@ -4,7 +4,7 @@ private enum ConfigurationKey: String {
|
|||
case relatedUSRsToSkip = "related_usrs_to_skip"
|
||||
}
|
||||
|
||||
struct UnusedDeclarationConfiguration: RuleConfiguration, Equatable {
|
||||
struct UnusedDeclarationConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var includePublicAndOpen: Bool
|
||||
private(set) var severityConfiguration: SeverityConfiguration
|
||||
private(set) var relatedUSRsToSkip: Set<String>
|
||||
|
|
|
@ -19,17 +19,17 @@ struct TransitiveModuleConfiguration: Equatable {
|
|||
}
|
||||
}
|
||||
|
||||
struct UnusedImportConfiguration: RuleConfiguration, Equatable {
|
||||
struct UnusedImportConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
var consoleDescription: String {
|
||||
return [
|
||||
"severity: \(severity.consoleDescription)",
|
||||
"severity: \(severityConfiguration.consoleDescription)",
|
||||
"require_explicit_imports: \(requireExplicitImports)",
|
||||
"allowed_transitive_imports: \(allowedTransitiveImports)",
|
||||
"always_keep_imports: \(alwaysKeepImports)"
|
||||
].joined(separator: ", ")
|
||||
}
|
||||
|
||||
private(set) var severity: SeverityConfiguration
|
||||
private(set) var severityConfiguration: SeverityConfiguration
|
||||
private(set) var requireExplicitImports: Bool
|
||||
private(set) var allowedTransitiveImports: [TransitiveModuleConfiguration]
|
||||
/// A set of modules to never remove the imports of.
|
||||
|
@ -38,7 +38,7 @@ struct UnusedImportConfiguration: RuleConfiguration, Equatable {
|
|||
init(severity: ViolationSeverity, requireExplicitImports: Bool,
|
||||
allowedTransitiveImports: [TransitiveModuleConfiguration],
|
||||
alwaysKeepImports: [String]) {
|
||||
self.severity = SeverityConfiguration(severity)
|
||||
self.severityConfiguration = SeverityConfiguration(severity)
|
||||
self.requireExplicitImports = requireExplicitImports
|
||||
self.allowedTransitiveImports = allowedTransitiveImports
|
||||
self.alwaysKeepImports = alwaysKeepImports
|
||||
|
@ -49,8 +49,8 @@ struct UnusedImportConfiguration: RuleConfiguration, Equatable {
|
|||
throw Issue.unknownConfiguration
|
||||
}
|
||||
|
||||
if let severityConfiguration = configurationDict["severity"] {
|
||||
try severity.apply(configuration: severityConfiguration)
|
||||
if let severity = configurationDict["severity"] {
|
||||
try severityConfiguration.apply(configuration: severity)
|
||||
}
|
||||
if let requireExplicitImports = configurationDict["require_explicit_imports"] as? Bool {
|
||||
self.requireExplicitImports = requireExplicitImports
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// swiftlint:disable:next type_name
|
||||
struct VerticalWhitespaceClosingBracesConfiguration: RuleConfiguration, Equatable {
|
||||
struct VerticalWhitespaceClosingBracesConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private enum ConfigurationKey: String {
|
||||
case severity = "severity"
|
||||
case onlyEnforceBeforeTrivialLines = "only_enforce_before_trivial_lines"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
struct VerticalWhitespaceConfiguration: RuleConfiguration, Equatable {
|
||||
struct VerticalWhitespaceConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
||||
private(set) var severityConfiguration = SeverityConfiguration(.warning)
|
||||
private(set) var maxEmptyLines: Int
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import SourceKittenFramework
|
|||
|
||||
struct StatementPositionRule: CorrectableRule, ConfigurationProviderRule {
|
||||
var configuration = StatementConfiguration(statementMode: .default,
|
||||
severity: SeverityConfiguration(.warning))
|
||||
severityConfiguration: SeverityConfiguration(.warning))
|
||||
|
||||
static let description = RuleDescription(
|
||||
identifier: "statement_position",
|
||||
|
@ -90,7 +90,7 @@ private extension StatementPositionRule {
|
|||
func defaultValidate(file: SwiftLintFile) -> [StyleViolation] {
|
||||
return defaultViolationRanges(in: file, matching: Self.defaultPattern).compactMap { range in
|
||||
StyleViolation(ruleDescription: Self.description,
|
||||
severity: configuration.severity.severity,
|
||||
severity: configuration.severity,
|
||||
location: Location(file: file, characterOffset: range.location))
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ private extension StatementPositionRule {
|
|||
func uncuddledValidate(file: SwiftLintFile) -> [StyleViolation] {
|
||||
return uncuddledViolationRanges(in: file).compactMap { range in
|
||||
StyleViolation(ruleDescription: Self.uncuddledDescription,
|
||||
severity: configuration.severity.severity,
|
||||
severity: configuration.severity,
|
||||
location: Location(file: file, characterOffset: range.location))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue