sharkdp/hyperfine

Option indentation is shifted for `hyperfine --help`

marxin opened this issue · 2 comments

marxin commented

I noticed some options are shifted to the right:

❯ hyperfine --version
hyperfine 1.18.0
❯ hyperfine --help
...
  -S, --shell <SHELL>
          Set the shell to use for executing benchmarked commands. This can be
          the name or the path to the shell executable, or a full command line
          like "bash --norc". It can also be set to "default" to explicitly
          select the default shell on this platform. Finally, this can also be
          set to "none" to disable the shell. In this case, commands will be
          executed directly. They can still have arguments, but more complex
          things like "sleep 0.1; sleep 0.2" are not possible without a shell.
  -N
          An alias for '--shell=none'.
  -i, --ignore-failure
          Ignore non-zero exit codes of the benchmarked programs.
      --style <TYPE>
          Set output style type (default: auto). Set this to 'basic' to disable
          output coloring and interactive elements. Set it to 'full' to enable
          all effects even if no interactive terminal was detected. Set this to
          'nocolor' to keep the interactive output without any colors. Set this
          to 'color' to keep the colors without any interactive output. Set this
          to 'none' to disable all the output of the tool.
      --sort <METHOD>
          Specify the sort order of the speed comparison summary and the
          exported tables for markup formats (Markdown, AsciiDoc, org-mode):
            * 'auto' (default): the speed comparison will be ordered by time and
              the markup tables will be ordered by command (input order).
            * 'command': order benchmarks in the way they were specified
            * 'mean-time': order benchmarks by mean runtime
  -u, --time-unit <UNIT>
          Set the time unit to be used. Possible values: microsecond,
          millisecond, second. If the option is not given, the time unit is
          determined automatically. This option affects the standard output as
          well as all export formats except for CSV and JSON.
      --export-asciidoc <FILE>
          Export the timing summary statistics as an AsciiDoc table to the given
          FILE. The output time unit can be changed using the --time-unit
          option.
      --export-csv <FILE>
          Export the timing summary statistics as CSV to the given FILE. If you
          need the timing results for each individual run, use the JSON export
          format. The output time unit is always seconds.
      --export-json <FILE>
          Export the timing summary statistics and timings of individual runs as
          JSON to the given FILE. The output time unit is always seconds
      --export-markdown <FILE>
          Export the timing summary statistics as a Markdown table to the given
          FILE. The output time unit can be changed using the --time-unit
          option.
      --export-orgmode <FILE>
          Export the timing summary statistics as an Emacs org-mode table to the
          given FILE. The output time unit can be changed using the --time-unit
          option.
      --show-output
          Print the stdout and stderr of the benchmark instead of suppressing
          it. This will increase the time it takes for benchmarks to run, so it
          should only be used for debugging purposes or when trying to benchmark
          output speed.
      --output <WHERE>
          Control where the output of the benchmark is redirected. Note that
          some programs like 'grep' detect when standard output is /dev/null and
          apply certain optimizations. To avoid that, consider using
          '--output=pipe'.
          
          <WHERE> can be:
          
            null:     Redirect output to /dev/null (the default).
          
            pipe:     Feed the output through a pipe before discarding it.
          
            inherit:  Don't redirect the output at all (same as
            '--show-output').
          
            <FILE>:   Write the output to the given file.
      --input <WHERE>
          Control where the input of the benchmark comes from.
          
          <WHERE> can be:
          
            null:     Read from /dev/null (the default).
          
            <FILE>:   Read the input from the given file.
  -n, --command-name <NAME>
          Give a meaningful name to a command. This can be specified multiple
          times if several commands are benchmarked.
  -h, --help
          Print help

I speak about --style, --sort, --export-asciidoc, ...

I noticed some options are shifted to the right:

I think that is working as intended? Short options are aligned, and long options are aligned? Or what is wrong?

marxin commented

Ohhh, got it, it's indented due to the long options. Thanks for the clarification.