From ce4410fd8d95dc8809e2bb57e0e29311beac112f Mon Sep 17 00:00:00 2001 From: Alexander Bayandin Date: Sat, 19 Jun 2021 00:18:51 +0100 Subject: [PATCH] exceptions: add "Did you mean ..." for FormulaOrCaskUnavailableError --- Library/Homebrew/exceptions.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb index 09765e0068..a0db4eb9b2 100644 --- a/Library/Homebrew/exceptions.rb +++ b/Library/Homebrew/exceptions.rb @@ -91,9 +91,17 @@ class FormulaOrCaskUnavailableError < RuntimeError @name = name end + sig { returns(String) } + def did_you_mean + similar_formula_names = Formula.fuzzy_search(name) + return "" if similar_formula_names.blank? + + "Did you mean #{similar_formula_names.to_sentence two_words_connector: " or ", last_word_connector: " or "}?" + end + sig { returns(String) } def to_s - "No available formula or cask with the name \"#{name}\"." + "No available formula or cask with the name \"#{name}\". #{did_you_mean}".strip end end @@ -129,7 +137,7 @@ class FormulaUnavailableError < FormulaOrCaskUnavailableError sig { returns(String) } def to_s - "No available formula with the name \"#{name}\"#{dependent_s}." + "No available formula with the name \"#{name}\"#{dependent_s}. #{did_you_mean}".strip end end