completions: typed: strict

This commit is contained in:
Michael Cho 2024-09-26 13:01:31 -04:00
parent 05cde76adc
commit 0029308844
No known key found for this signature in database
GPG Key ID: 55E85E28A7CD1E85

View File

@ -1,4 +1,4 @@
# typed: true # rubocop:todo Sorbet/StrictSigil # typed: strict
# frozen_string_literal: true # frozen_string_literal: true
require "utils/link" require "utils/link"
@ -16,8 +16,8 @@ module Homebrew
keyword_init: true, keyword_init: true,
) )
COMPLETIONS_DIR = (HOMEBREW_REPOSITORY/"completions").freeze COMPLETIONS_DIR = T.let((HOMEBREW_REPOSITORY/"completions").freeze, Pathname)
TEMPLATE_DIR = (HOMEBREW_LIBRARY_PATH/"completions").freeze TEMPLATE_DIR = T.let((HOMEBREW_LIBRARY_PATH/"completions").freeze, Pathname)
SHELLS = %w[bash fish zsh].freeze SHELLS = %w[bash fish zsh].freeze
COMPLETIONS_EXCLUSION_LIST = %w[ COMPLETIONS_EXCLUSION_LIST = %w[
@ -26,7 +26,7 @@ module Homebrew
update-report update-report
].freeze ].freeze
BASH_NAMED_ARGS_COMPLETION_FUNCTION_MAPPING = { BASH_NAMED_ARGS_COMPLETION_FUNCTION_MAPPING = T.let({
formula: "__brew_complete_formulae", formula: "__brew_complete_formulae",
installed_formula: "__brew_complete_installed_formulae", installed_formula: "__brew_complete_installed_formulae",
outdated_formula: "__brew_complete_outdated_formulae", outdated_formula: "__brew_complete_outdated_formulae",
@ -38,9 +38,9 @@ module Homebrew
command: "__brew_complete_commands", command: "__brew_complete_commands",
diagnostic_check: '__brewcomp "${__HOMEBREW_DOCTOR_CHECKS=$(brew doctor --list-checks)}"', diagnostic_check: '__brewcomp "${__HOMEBREW_DOCTOR_CHECKS=$(brew doctor --list-checks)}"',
file: "__brew_complete_files", file: "__brew_complete_files",
}.freeze }.freeze, T::Hash[Symbol, String])
ZSH_NAMED_ARGS_COMPLETION_FUNCTION_MAPPING = { ZSH_NAMED_ARGS_COMPLETION_FUNCTION_MAPPING = T.let({
formula: "__brew_formulae", formula: "__brew_formulae",
installed_formula: "__brew_installed_formulae", installed_formula: "__brew_installed_formulae",
outdated_formula: "__brew_outdated_formulae", outdated_formula: "__brew_outdated_formulae",
@ -52,9 +52,9 @@ module Homebrew
command: "__brew_commands", command: "__brew_commands",
diagnostic_check: "__brew_diagnostic_checks", diagnostic_check: "__brew_diagnostic_checks",
file: "__brew_formulae_or_ruby_files", file: "__brew_formulae_or_ruby_files",
}.freeze }.freeze, T::Hash[Symbol, String])
FISH_NAMED_ARGS_COMPLETION_FUNCTION_MAPPING = { FISH_NAMED_ARGS_COMPLETION_FUNCTION_MAPPING = T.let({
formula: "__fish_brew_suggest_formulae_all", formula: "__fish_brew_suggest_formulae_all",
installed_formula: "__fish_brew_suggest_formulae_installed", installed_formula: "__fish_brew_suggest_formulae_installed",
outdated_formula: "__fish_brew_suggest_formulae_outdated", outdated_formula: "__fish_brew_suggest_formulae_outdated",
@ -65,7 +65,7 @@ module Homebrew
installed_tap: "__fish_brew_suggest_taps_installed", installed_tap: "__fish_brew_suggest_taps_installed",
command: "__fish_brew_suggest_commands", command: "__fish_brew_suggest_commands",
diagnostic_check: "__fish_brew_suggest_diagnostic_checks", diagnostic_check: "__fish_brew_suggest_diagnostic_checks",
}.freeze }.freeze, T::Hash[Symbol, String])
sig { void } sig { void }
def self.link! def self.link!
@ -264,6 +264,7 @@ module Homebrew
COMPLETION COMPLETION
end end
sig { params(command: String, option: String).returns(String) }
def self.generate_zsh_option_exclusions(command, option) def self.generate_zsh_option_exclusions(command, option)
conflicts = Commands.option_conflicts(command, option.gsub(/^--/, "")) conflicts = Commands.option_conflicts(command, option.gsub(/^--/, ""))
return "" unless conflicts.presence return "" unless conflicts.presence