code: function _filterAutocompleteArguments(args) {
      args = _.filter(args, function(arg, i) {
          return (i === (args.length - 1) || arg.quote || arg.str !== '');
      });
  
      // If there is only one argument and its unintentially empty, don't bother including it
      if (args.length === 1 && !args[0].quote && args[0].str === '') {
          return [];
      } else {
          return args;
      }
  }
docs: /*!
  Clear empty arguments out of the arguments array except for the last one.
  
  When giving the args array to the caller, we need to indicate if the cursor position is beginning
  a new argument, or if it is in progress on a current argument. The parser will strip that
  information in its sanitized `str` representation of the arguments. For example:
  
  `"--log-level"` will look example the same as `"--log-level "` (trailing space)
  
  ... but for doing auto-complete on either argument keys or argument values, it is an important
  distinction to make. So if the state is the latter, we maintain the empty string at the end of
  the args array.