///|
pub fn lint_report(
index : @semantic.SemanticIndex,
config : LintConfig,
) -> @diagnostic.DiagnosticReport {
@diagnostic.DiagnosticReport::new(run(index, config))
}
///|
pub fn lint_codes(
index : @semantic.SemanticIndex,
config : LintConfig,
) -> Array[String] {
lint_report(index, config).codes()
}
///|
pub fn lint_has_errors(
index : @semantic.SemanticIndex,
config : LintConfig,
) -> Bool {
lint_report(index, config).has_errors()
}
///|
pub fn lint_by_category(
index : @semantic.SemanticIndex,
config : LintConfig,
category : RuleCategory,
) -> @diagnostic.DiagnosticReport {
let diagnostics = run(index, config)
let codes = category_codes(category)
@diagnostic.DiagnosticReport::new(
@diagnostic.filter_codes(diagnostics, codes),
)
}
///|
pub fn lint_report_summary(
index : @semantic.SemanticIndex,
config : LintConfig,
) -> String {
lint_report(index, config).summary() + ", " + lint_category_summary(config)
}
///|
pub fn strict_config() -> LintConfig {
default_config().warnings_as_errors(true)
}
///|
pub fn compare_configs(
index : @semantic.SemanticIndex,
first : LintConfig,
second : LintConfig,
) -> (Int, Int) {
(lint_report(index, first).total(), lint_report(index, second).total())
}