mirror of
https://gitea.invidious.io/iv-org/shard-ameba.git
synced 2024-08-15 00:53:29 +00:00
Add autocorrect checks to ExplainFormatter
This commit is contained in:
parent
8d3b76003e
commit
1b6fe40a3b
3 changed files with 17 additions and 6 deletions
|
@ -27,7 +27,7 @@ module Ameba::Cli
|
|||
runner = Ameba.run(config)
|
||||
|
||||
if location = opts.location_to_explain
|
||||
runner.explain(location)
|
||||
runner.explain(location, autocorrect: opts.autocorrect?)
|
||||
else
|
||||
exit 1 unless runner.success?
|
||||
end
|
||||
|
|
|
@ -11,6 +11,7 @@ module Ameba::Formatter
|
|||
|
||||
getter output : IO::FileDescriptor | IO::Memory
|
||||
getter location : Crystal::Location
|
||||
getter? autocorrect : Bool
|
||||
|
||||
# Creates a new instance of ExplainFormatter.
|
||||
# Accepts *output* which indicates the io where the explanation will be wrtitten to.
|
||||
|
@ -20,7 +21,7 @@ module Ameba::Formatter
|
|||
# ExplainFormatter.new output,
|
||||
# {file: path, line: line_number, column: column_number}
|
||||
# ```
|
||||
def initialize(@output, location)
|
||||
def initialize(@output, location, @autocorrect = false)
|
||||
@location = Crystal::Location.new(location[:file], location[:line], location[:column])
|
||||
end
|
||||
|
||||
|
@ -40,12 +41,22 @@ module Ameba::Formatter
|
|||
|
||||
return unless (location = issue.location)
|
||||
|
||||
output_title "ISSUE INFO"
|
||||
output_paragraph [
|
||||
issue_info = [
|
||||
issue.message.colorize(:red).to_s,
|
||||
location.to_s.colorize(:cyan).to_s,
|
||||
]
|
||||
|
||||
if issue.correctable?
|
||||
if autocorrect?
|
||||
issue_info << "Corrected".colorize(:green).to_s
|
||||
else
|
||||
issue_info << "Correctable".colorize(:yellow).to_s
|
||||
end
|
||||
end
|
||||
|
||||
output_title "ISSUE INFO"
|
||||
output_paragraph issue_info
|
||||
|
||||
if affected_code = affected_code(issue, context_lines: 3)
|
||||
output_title "AFFECTED CODE"
|
||||
output_paragraph affected_code
|
||||
|
|
|
@ -161,8 +161,8 @@ module Ameba
|
|||
# runner.run
|
||||
# runner.explain({file: file, line: l, column: c})
|
||||
# ```
|
||||
def explain(location, output = STDOUT)
|
||||
Formatter::ExplainFormatter.new(output, location).finished @sources
|
||||
def explain(location, output = STDOUT, autocorrect = false)
|
||||
Formatter::ExplainFormatter.new(output, location, autocorrect).finished @sources
|
||||
end
|
||||
|
||||
# Indicates whether the last inspection successful or not.
|
||||
|
|
Loading…
Reference in a new issue