anchor.diff:  
   === Custom Parameter Processing
   
  +As of version 4.6, picocli offers two different parser plugins for custom parameter processing: while the `IParameterPreprocessor` is a powerful and flexible tool, the `IParameterConsumer` serves as a simpler alternative.
  +
   ==== `IParameterConsumer` Parser Plugin
   
   Options or positional parameters can be assigned a `IParameterConsumer` that implements
  
positive.code: }
  ----
  
  With this preprocessor in place the user can now specify his editor of choice (e.g. `--open=idea`). If no editor is given, the default editor (=`eclipse`) is used:
  
  [grid=cols,cols=4*,options="header"]
  |===
  | User input           | Option `Editor` | Parameter `File` | Unmatched input
  | `--open file1 file2` | `eclipse` (default)      | `file1` | `file2`
  | `--open file1`       | `eclipse` (default)      | `file1` | none
  | `--open=idea file1`  | `idea` (user specificed) | `file1` | none
  | `--open=idea`        | `idea` (user specificed) | `null`  | none
  |===
  
  ==== Parser Plugin Comparison
  
negative.code: Users can use the <<Double dash (`--`),end-of-options delimiter>> and disambiguate the input with
  `-x &dash;&dash; VALUE`, but this may not be obvious to many users.
  One idea is to <<Show End of Options,show the end-of-options>> delimiter in the usage help.
  Another idea is to make use of the <<IParameterPreprocessor_Parser_Plugin,IParameterPreprocessor Parser Plugin>> introduced with picocli 4.6.
  
  An alternative is to avoid the use of optional parameters and use the default arity in this scenario to eliminate the ambiguity altogether.
  
  