mirror of
https://github.com/realm/SwiftLint.git
synced 2026-06-06 20:18:40 +00:00
With the binding of configurations to their associated rule types "unknown configuration" errors can be made more specific mentioning also the rule's identifier in the printed message.
40 lines
1.6 KiB
Swift
40 lines
1.6 KiB
Swift
struct FileNameConfiguration: SeverityBasedRuleConfiguration, Equatable {
|
|
typealias Parent = FileNameRule
|
|
|
|
var consoleDescription: String {
|
|
return "(severity) \(severityConfiguration.consoleDescription), " +
|
|
"excluded: \(excluded.sorted()), " +
|
|
"prefix_pattern: \(prefixPattern), " +
|
|
"suffix_pattern: \(suffixPattern), " +
|
|
"nested_type_separator: \(nestedTypeSeparator)"
|
|
}
|
|
|
|
private(set) var severityConfiguration = SeverityConfiguration<Parent>.warning
|
|
private(set) var excluded = Set<String>(["main.swift", "LinuxMain.swift"])
|
|
private(set) var prefixPattern = ""
|
|
private(set) var suffixPattern = "\\+.*"
|
|
private(set) var nestedTypeSeparator = "."
|
|
|
|
mutating func apply(configuration: Any) throws {
|
|
guard let configurationDict = configuration as? [String: Any] else {
|
|
throw Issue.unknownConfiguration(ruleID: Parent.identifier)
|
|
}
|
|
|
|
if let severity = configurationDict["severity"] {
|
|
try severityConfiguration.apply(configuration: severity)
|
|
}
|
|
if let excluded = [String].array(of: configurationDict["excluded"]) {
|
|
self.excluded = Set(excluded)
|
|
}
|
|
if let prefixPattern = configurationDict["prefix_pattern"] as? String {
|
|
self.prefixPattern = prefixPattern
|
|
}
|
|
if let suffixPattern = configurationDict["suffix_pattern"] as? String {
|
|
self.suffixPattern = suffixPattern
|
|
}
|
|
if let nestedTypeSeparator = configurationDict["nested_type_separator"] as? String {
|
|
self.nestedTypeSeparator = nestedTypeSeparator
|
|
}
|
|
}
|
|
}
|