SwiftLint/Source/SwiftLintBuiltInRules/Rules/RuleConfigurations/IndentationWidthConfigurati...

42 lines
1.7 KiB
Swift

struct IndentationWidthConfiguration: SeverityBasedRuleConfiguration, Equatable {
var consoleDescription: String {
return "severity: \("severity: \(severityConfiguration.consoleDescription)"), "
+ "indentation_width: \(indentationWidth), "
+ "include_comments: \(includeComments), "
+ "include_compiler_directives: \(includeCompilerDirectives)"
+ "include_multiline_strings: \(includeMultilineStrings)"
}
private(set) var severityConfiguration = SeverityConfiguration.warning
private(set) var indentationWidth = 4
private(set) var includeComments = true
private(set) var includeCompilerDirectives = true
private(set) var includeMultilineStrings = true
mutating func apply(configuration: Any) throws {
guard let configurationDict = configuration as? [String: Any] else {
throw Issue.unknownConfiguration
}
if let config = configurationDict["severity"] {
try severityConfiguration.apply(configuration: config)
}
if let indentationWidth = configurationDict["indentation_width"] as? Int, indentationWidth >= 1 {
self.indentationWidth = indentationWidth
}
if let includeComments = configurationDict["include_comments"] as? Bool {
self.includeComments = includeComments
}
if let includeCompilerDirectives = configurationDict["include_compiler_directives"] as? Bool {
self.includeCompilerDirectives = includeCompilerDirectives
}
if let includeMultilineStrings = configurationDict["include_multiline_strings"] as? Bool {
self.includeMultilineStrings = includeMultilineStrings
}
}
}