Модуль: Utils::ShellCompletion Закрытый
- Определён в:
- utils/shell_completion.rb
Обзор
Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого модуля, так как он может быть удалён или изменён без предупреждения.
Общая логика для создания скриптов автодополнения командной оболочки. Используется как в Formula#generate_completions_from_executable, так и в Cask::Artifact::GeneratedCompletion.
Краткое описание методов класса свернуть
- .completion_shell_parameter(format, shell, executable, env) ⇒ String, ... закрытый
- .default_completion_shells(format) ⇒ Array<Symbol> закрытый
- .generate_completion_output(commands, shell_parameter, env) ⇒ String закрытый
Подробное описание методов класса
.completion_shell_parameter(format, shell, executable, env) ⇒ String, ...
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # File 'utils/shell_completion.rb', line 27 def self.completion_shell_parameter(format, shell, executable, env) # Go's cobra and Rust's clap accept "powershell". shell_parameter = (shell == :pwsh) ? "powershell" : shell.to_s case format when nil shell_parameter when :arg "--shell=#{shell_parameter}" when :clap env["COMPLETE"] = shell_parameter nil when :click prog_name = File.basename(executable).upcase.tr("-", "_") env["_#{prog_name}_COMPLETE"] = "#{shell_parameter}_source" nil when :cobra ["completion", shell_parameter] when :flag "--#{shell_parameter}" when :none nil when :typer env["_TYPER_COMPLETE_TEST_DISABLE_SHELL_DETECTION"] = "1" ["--show-completion", shell_parameter] else "#{format}#{shell}" end end |
.default_completion_shells(format) ⇒ Array<Symbol>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
10 11 12 13 14 15 16 17 | # File 'utils/shell_completion.rb', line 10 def self.default_completion_shells(format) case format when :cobra, :typer [:bash, :zsh, :fish, :pwsh] else [:bash, :zsh, :fish] end end |
.generate_completion_output(commands, shell_parameter, env) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
64 65 66 67 68 69 | # File 'utils/shell_completion.rb', line 64 def self.generate_completion_output(commands, shell_parameter, env) args = T.let(commands + Array(shell_parameter), T::Array[T.any(Pathname, String)]) = T.let({}, T::Hash[Symbol, Symbol]) [:err] = :err unless ENV["HOMEBREW_STDERR"] Utils.safe_popen_read(env, *args, **) end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Utils/ShellCompletion.html