lib/slim_lint/reporter/default_reporter.rb
# frozen_string_literal: true
module SlimLint
# Outputs lints in a simple format with the filename, line number, and lint
# message.
class Reporter::DefaultReporter < Reporter
def display_report(report)
sorted_lints = report.lints.sort_by { |l| [l.filename, l.line] }
sorted_lints.each do |lint|
print_location(lint)
print_type(lint)
print_message(lint)
end
end
private
def print_location(lint)
log.info lint.filename, false
log.log ':', false
log.bold lint.line, false
end
def print_type(lint)
if lint.error?
log.error ' [E] ', false
else
log.warning ' [W] ', false
end
end
def print_message(lint)
if lint.linter
log.success("#{lint.linter.name}: ", false)
end
log.log lint.message
end
end
end