protected function argumentsSection(Argument ...$arguments): void
    {
        if (! $arguments) {
            $arguments = $this->getArguments();
        }

        if (! $arguments) {
            return;
        }

        $longestLength = 0;

        $this->sectionDivider();
        $this->sectionTitleMessage('Arguments');

        foreach ($arguments as $argument) {
            $longestLength = max(\strlen($argument->getName()), $longestLength);
        }

        foreach ($arguments as $argument) {
            $this->sectionMessage(
                static::TAB . $argument->getName(),
                $argument->getDescription(),
                $longestLength
            );
        }
    }