diff --git a/src/Parser/CommandInfo.php b/src/Parser/CommandInfo.php index 60a700a..2f38aef 100644 --- a/src/Parser/CommandInfo.php +++ b/src/Parser/CommandInfo.php @@ -551,24 +551,9 @@ public function inputOptions() return $this->inputOptions; } - protected function addImplicitNoOptions() - { - $opts = $this->options()->getValues(); - foreach ($opts as $name => $defaultValue) { - if ($defaultValue === true) { - $key = 'no-' . $name; - if (!array_key_exists($key, $opts)) { - $description = "Negate --$name option."; - $this->options()->add($key, $description, false); - } - } - } - } - protected function createInputOptions() { $explicitOptions = []; - $this->addImplicitNoOptions(); $opts = $this->options()->getValues(); foreach ($opts as $name => $defaultValue) { @@ -590,7 +575,13 @@ protected function createInputOptions() $defaultValue = null; } - if ($defaultValue === false) { + if ($defaultValue === true) { + $explicitOptions[$fullName] = new InputOption( + $fullName, + $shortcut, + InputOption::VALUE_NONE | InputOption::VALUE_NEGATABLE, + $description); + } elseif ($defaultValue === false) { $explicitOptions[$fullName] = new InputOption($fullName, $shortcut, InputOption::VALUE_NONE, $description); } elseif ($defaultValue === InputOption::VALUE_REQUIRED) { $explicitOptions[$fullName] = new InputOption($fullName, $shortcut, InputOption::VALUE_REQUIRED, $description, null, $suggestedValues);