From 5aeda450bd018fa943d6260f9c8dd7d28563fdcc Mon Sep 17 00:00:00 2001 From: Sijawusz Pur Rahnama <sija@sija.pl> Date: Fri, 6 Dec 2024 20:13:40 +0100 Subject: [PATCH] Sort sources and issues before passing them to the formatter --- src/ameba/runner.cr | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ameba/runner.cr b/src/ameba/runner.cr index 5166de535..d2189b394 100644 --- a/src/ameba/runner.cr +++ b/src/ameba/runner.cr @@ -72,7 +72,8 @@ module Ameba ) end - protected def initialize(rules, @sources, @formatter, @severity, @autocorrect = false, @version = nil) + protected def initialize(rules, sources, @formatter, @severity, @autocorrect = false, @version = nil) + @sources = sources.sort_by(&.path) @rules = rules.select { |rule| rule_runnable?(rule, @version) } @unneeded_disable_directive_rule = @@ -159,6 +160,10 @@ module Ameba File.write(source.path, source.code) unless corrected_issues.empty? ensure + missing_location = Crystal::Location.new(nil, 0, 0) + source.issues.sort_by! do |issue| + issue.location || missing_location + end @formatter.source_finished source end