anchor.diff:      @Parameters(index = "0", arity="0..1", description = "The file to edit.")
       File file;
   
  -   enum Editor { eclipse, idea, netbeans }
  -
  -   @Option(names = "--open", arity = "0..1", preprocessor = Edit.MyPreprocessor.class,
  -       description = {
  +    enum Editor { defaultEditor, eclipse, idea, netbeans }
  +
  +    @Option(names = "--open", arity = "0..1", preprocessor = Edit.MyPreprocessor.class,
  +        description = {
              "Optionally specify the editor to use (${COMPLETION-CANDIDATES}). " +
  -           "If omitted eclipse is used as default. ",
  +           "If omitted the default editor is used. ",
              "Example: edit --open=idea FILE opens IntelliJ IDEA (notice the '=' separator)",
  -           "         edit --open FILE opens the specified file in eclipse"
  -       })
  -   static Editor editor = Editor.eclipse;
  -
  -   static class MyPreprocessor implements IParameterPreprocessor {
  -       public boolean preprocess(Stack<String> args,
  -                                 CommandSpec commandSpec,
  -                                 ArgSpec argSpec,
  -                                 Map<String, Object> info) {
  -           // we need to decide whether the next arg is the file to edit
  -           // or the name of the editor to use...
  -           if (" ".equals(info.get("separator"))) { // parameter was not attached to option
  -
  -               // act as if the user specified --open=eclipse
  -               args.push(editor.name());
  -           }
  -           return false; // picocli's internal parsing is resumed for this option
  -       }
  -   }
  +           "         edit --open FILE opens the specified file in the default editor"
  +        })
  +    Editor editor = Editor.defaultEditor;
  +
  +    static class MyPreprocessor implements IParameterPreprocessor {
  +        public boolean preprocess(Stack<String> args,
  +                                  CommandSpec commandSpec,
  +                                  ArgSpec argSpec,
  +                                  Map<String, Object> info) {
  +            // we need to decide whether the next arg is the file to edit
  +            // or the name of the editor to use...
  +            if (" ".equals(info.get("separator"))) { // parameter was not attached to option
  +
  +                // act as if the user specified --open=defaultEditor
  +                args.push(Editor.defaultEditor.name());
  +            }
  +            return false; // picocli's internal parsing is resumed for this option
  +        }
  +    }
   }
   ----
   
  
positive.code: 
  === Custom Parameter Processing
  
  ==== `IParameterConsumer` Parser Plugin
  
  Options or positional parameters can be assigned a `IParameterConsumer` that implements
  
negative.code:     @Parameters(index = "0", arity = "0..1", description = ["The file to edit."])
      var file: File? = null
  
      enum class Editor { defaultEditor, eclipse, idea, netbeans }
  
      @Option(names = ["--open"], arity = "0..1", preprocessor = MyPreprocessor::class,
          description = ["Optionally specify the editor to use (\${COMPLETION-CANDIDATES}). " +
              "If omitted the default editor is used. ",
              "Example: edit --open=idea FILE ",
              "  opens file in IntelliJ IDEA (notice the '=' separator)",
              "         edit --open FILE",
              "  opens the specified file in the default editor"])
      var editor = Editor.defaultEditor
  
      class MyPreprocessor : IParameterPreprocessor {
          override fun preprocess(args: Stack<String>,
  