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…
	
	Add table
		Add a link
		
	
		Reference in a new issue