public CommandArguments(LeafCommand command, IReadOnlyCollection <string> arguments) { this.Command = command ?? throw new ArgumentNullException(nameof(command)); this.Arguments = arguments ?? Array.Empty <string>(); this.argumentsAsDictionary = this.ProcessArgumentsAsDictionary(); }
private void AddCommandOptions(Command rootCommand, LeafCommand command) { if (command.Options is null) { return; } string usingCommandArgument = string.Join(" ", command.Path.Select(x => x.Label)); foreach (CommandOption option in command.Options) { string description = string.Join(" ", option.Description).Replace("\"", "\\\""); this.lines.Add( "complete " + $"--command {rootCommand.Label} " + $"--condition \"__fish_using_command {usingCommandArgument}\" " + "--no-files " + $"--long-option {option.Label.TrimStart('-')} " + $"--description \"{description}\"" ); } }