mirror of
https://github.com/realm/SwiftLint.git
synced 2026-05-07 20:12:49 +00:00
82cad0bfff
This allows to infer names of options from their names in a configuration. CamelCase is translated into snake_case automatically when `apply` is triggered. * Don't have all `RuleConfiguration`s conform to `InlinableOptionType`. Mark types that must have this capability explicitly. Same for `AcceptableByConfigurationElement`. * A type being an `InlinableOptionType` doesn't mean it's automatically inlined. This also doesn't depend on the fact of having a name for its key configured any longer. Instead, an `inline` attribute must explicitly be set to `true` in `@ConfigurationElement`. * Key name inference is optional and can be overwritten by specifying a key name in the attribute. * Inlined configurations only fail in `apply` when they are really sure that something is odd. Otherwise, they accept to not being updated.
17 lines
489 B
Swift
17 lines
489 B
Swift
import SourceKittenFramework
|
|
import SwiftLintCore
|
|
|
|
@AutoApply
|
|
struct CyclomaticComplexityConfiguration: RuleConfiguration {
|
|
typealias Parent = CyclomaticComplexityRule
|
|
|
|
@ConfigurationElement(inline: true)
|
|
private(set) var length = SeverityLevelsConfiguration<Parent>(warning: 10, error: 20)
|
|
@ConfigurationElement(key: "ignores_case_statements")
|
|
private(set) var ignoresCaseStatements = false
|
|
|
|
var params: [RuleParameter<Int>] {
|
|
return length.params
|
|
}
|
|
}
|