public function renderException($e, $output)
    {
        if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
            parent::renderException($e, $output);
        } else {
            /** @var $ancestry \Exception[] */
            $ancestry = array();
            $maxLength = 0;
            do {
                $ancestry[] = $e;
                $maxLength = max($maxLength, strlen(get_class($e)));
                $last = $e;
            } while ($e = $e->getPrevious());

            if ($last instanceof VerboseException) {
                $last->output($output);
            } else {
                $depth = 0;
                foreach ($ancestry as $e) {
                    $output->writeln(
                        sprintf(
                            '%s%-40s %s',
                            ($depth > 0 ? str_repeat('   ', $depth - 1) . '-> ' : ''),
                            '<fg=red;options=bold>' . $e->getMessage() . '</fg=red;options=bold>',
                            $depth == count($ancestry) - 1 ? str_pad('[' . get_class($e) . ']', $maxLength + 15, ' ') : ''
                        )
                    );
                    $depth++;
                }
            }
        }
        $output->writeln('[' . join('::', Debug::$scope) . ']');
    }