Files
SwiftLint/Source/SwiftLintFramework/Linter.swift
T
2015-05-25 14:46:13 -07:00

49 lines
1.0 KiB
Swift

//
// Linter.swift
// SwiftLint
//
// Created by JP Simard on 2015-05-16.
// Copyright (c) 2015 Realm. All rights reserved.
//
import Foundation
import SwiftXPC
import SourceKittenFramework
public struct Linter {
private let file: File
private let rules: [Validatable] = [
LineLengthRule(),
LeadingWhitespaceRule(),
TrailingWhitespaceRule(),
TrailingNewlineRule(),
ForceCastRule(),
FileLengthRule(),
TodoRule(),
ColonRule(),
TypeNameRule(),
VariableNameRule(),
TypeBodyLengthRule(),
FunctionBodyLengthRule(),
NestingRule()
]
public var styleViolations: [StyleViolation] {
return rules.flatMap { $0.validateFile(self.file) }
}
public var explainableRules: [RuleExample] {
return compact(rules.map { $0.example })
}
/**
Initialize a Linter by passing in a File.
:param: file File to lint.
*/
public init(file: File) {
self.file = file
}
}