// // FileLengthRule.swift // SwiftLint // // Created by JP Simard on 2015-05-16. // Copyright (c) 2015 Realm. All rights reserved. // import SourceKittenFramework public struct FileLengthRule: ViolationLevelRule { public var warning = RuleParameter(severity: .Warning, value: 400) public var error = RuleParameter(severity: .Error, value: 1000) public init() {} public static let description = RuleDescription( identifier: "file_length", name: "File Line Length", description: "Files should not span too many lines." ) public func validateFile(file: File) -> [StyleViolation] { let lineCount = file.lines.count for parameter in [error, warning] where lineCount > parameter.value { return [StyleViolation(ruleDescription: self.dynamicType.description, severity: parameter.severity, location: Location(file: file.path, line: lineCount), reason: "File should contain \(warning.value) lines or less: " + "currently contains \(lineCount)")] } return [] } }