anchor.diff:  Usage: <main class> [OPTIONS] [<files>...]
   ----
   Note that the positional parameters are not abbreviated.
  -[source,java]
  +
  +.Java
  +[source,java,role="primary"]
   ----
   @Command(abbreviateSynopsis = true)
   class App {
       @Parameters File[] files;
       @Option(names = {"--count", "-c"}) int count;
  -    ....
  +    // ...
  +}
  +----
  +
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +@Command(abbreviateSynopsis = true)
  +class App {
  +    @Parameters lateinit var files: Array<File>
  +    @Option(names = ["--count", "-c"]) var count = 0
  +    // ...
   }
   ----
   
  
positive.code:   --              End of options. Remainder are positional parameters.
  ----
  
  
  The description of the End of Options delimiter entry can also be specified in a <<Internationalization,resource bundle>> for internationalization and localization.
  The `descriptionKey` for the End of Options delimiter entry in resource bundles is:
  
  
negative.code: 
  CommandLine.usage(new ValidValuesDemo(), System.out);
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  enum class Lang { java, groovy, kotlin, javascript, frege, clojure }
  
  class MyAbcCandidates : ArrayList<String?>(listOf("A", "B", "C"))
  
  class ValidValuesDemo {
      @Option(names = ["-l"], description = ["Enum values: \${COMPLETION-CANDIDATES}"])
      lateinit var lang: Lang
  
      @Option(names = ["-o"], completionCandidates = MyAbcCandidates::class,
              description = ["Candidates: \${COMPLETION-CANDIDATES}"])
      lateinit var option: String
  }
  
  fun main(args: Array<String>) = CommandLine(ValidValuesDemo()).usage(System.out)
  ----
  
  This produces the following usage help:
  ----
  Usage: <main class> [-l=<lang>] [-o=<option>]
  