diff --git a/src/parsers/completion_parser.cr b/src/parsers/completion_parser.cr index 3a068f9..e0d5abb 100644 --- a/src/parsers/completion_parser.cr +++ b/src/parsers/completion_parser.cr @@ -4,6 +4,7 @@ module GX::Parsers class CompletionParser < AbstractParser def build(parser, ancestors, config) breadcrumbs = ancestors + "completion" + # config.mode = Types::Mode::CompletionAutodetect parser.banner = Utils.usage_line( breadcrumbs, @@ -13,10 +14,12 @@ module GX::Parsers parser.separator("\nCompletion commands:") parser.on("--bash", "Generate bash completion") do |_| + config.mode = Types::Mode::CompletionBash Log.info { "Set bash completion" } end parser.on("--zsh", "Generate zsh completion") do |_| + config.mode = Types::Mode::CompletionZsh Log.info { "Set zsh completion" } end diff --git a/src/parsers/root_parser.cr b/src/parsers/root_parser.cr index c3895dd..67467d2 100644 --- a/src/parsers/root_parser.cr +++ b/src/parsers/root_parser.cr @@ -69,7 +69,10 @@ module GX::Parsers # end parser.on("completion", "Manage completion") do - config.mode = Types::Mode::GlobalCompletion + config.mode = Types::Mode::GlobalHelp + config.help_options = Parsers::Options::HelpOptions.new + config.help_options.try(&.parser_snapshot=(parser.dup)) + Parsers::CompletionParser.new.build(parser, breadcrumbs, config) end