Skip to content

Can't set position of arguments in the help message #13

@victormihalache

Description

@victormihalache

I was playing with this library and made the following in main.cpp:

#include <iostream>

#include <fstream>
#include <vector>

#include "argparse.h"

int main (int argc, const char * argv[])
{
  std::cout << "Hi" << std::endl;

  argparse::ArgumentParser parser ("test", "idkwhatthisdoes");
  parser.add_argument ()
    .names ({"-q", "--query"})
    .description ("Define search query for what to look for")
    .required (true)
    .position (0);
  parser.add_argument ()
    .names ({"-i", "--input-file"})
    .description ("Specifies the input file")
    .required (true)
    .position (1);
  parser.add_argument ()
    .names ({"-o", "--output-file"})
    .description ("Specifies the output file")
    .required (true)
    .position (2);
  parser.add_argument ()
    .names ({"-u", "--username"})
    .description ("Specifies the username to search. If empty username search will be ignored")
    .required (false);
  parser.enable_help ();

  auto err = parser.parse (argc, argv);
  if (err)
  {
    std::cout << err << std::endl;
    return -1;
  }

  if (parser.exists("help"))
  {
    parser.print_help();
    return 0;
  }

  if (parser.exists("q"))
  {
    std::cout << "woah query" << parser.get<std::string>("q") << std::endl;
    return 0;
  }

  return 0;
}

Running ./main -h gives me:

$ ./build/mtcs -h
Hi
Usage: test [q] [1] [i] [2] [o] [options...]
Options:
    -q, --query            Define search query for what to look for (Required)
    -i, --input-file       Specifies the input file (Required)
    -o, --output-file      Specifies the output file (Required)
    -u, --username         Specifies the username to search. If empty username search will be ignored
    -h, --help             Shows this page

But I expect:

$ ./build/mtcs -h
Hi
Usage: test [q] [i] [o] [options...]
Options:
    -q, --query            Define search query for what to look for (Required)
    -i, --input-file       Specifies the input file (Required)
    -o, --output-file      Specifies the output file (Required)
    -u, --username         Specifies the username to search. If empty username search will be ignored
    -h, --help             Shows this page

Why do numbers appear between arguments?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions