Uploaded image for project: 'Commons CLI'
  1. Commons CLI
  2. CLI-212

Print command-line options in same order as added

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.2
    • 1.3
    • Help formatter
    • None

    Description

      Using the current HelpFormater and Options classes it is impossible to print command-line options in the same order as they were added.

      In some applications this is critical, since option grouping is important for understanding how to use a program. Also, the programmer might have good reasons for adding options in a particular order. The default could remain printing sorted options, however.

      Two small changes need to be made to allow this:

      1. Change to use LinkedHashMap instead of HashMap in Options class:

      private Map shortOpts = new LinkedHashMap(); // keeps original order by default
      private Map optionGroups = new LinkedHashMap();

      2. Change the "null" formatter option in HelpFormatter to actually skip sorting:

      public void setOptionComparator(Comparator comparator)
      this.optionComparator = comparator; // allow null values, default ordering
      }

      Fix #2 above isn't strictly necessary, but would avoid forcing users to create boiler-plate code for this.

      Attachments

        1. sort-fix.patch
          2 kB
          Per Cederberg

        Activity

          People

            ebourg Emmanuel Bourg
            percederberg Per Cederberg
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: