From 093c9d2fa1f193b51983165a4901343a0f9ff4d9 Mon Sep 17 00:00:00 2001 From: Glenn Date: Sun, 4 Aug 2024 22:19:36 +0200 Subject: [PATCH] feat: add parser support for completion --- src/parsers/completion_parser.cr | 3 +++ src/parsers/root_parser.cr | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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