optionArgState: createArgState()

in packages/autocomplete-parser/src/parseArguments.ts [893:948]


        optionArgState: createArgState(),
        passedOptions: [],
        subcommandArgState: createArgState(loadSpecResult.args),
        haveEnteredSubcommandArgs: false,
      };
    }

    return false;
  };

  if (await updateStateForLoadSpec(state.completionObj.loadSpec, 0)) {
    return state;
  }

  for (let i = 1; i < tokens.length; i += 1) {
    if (state.completionObj.generateSpec) {
      state = await generateSpecForState(
        state,
        tokens.map((token) => token.text),
        isParsingHistory,
        localLogger,
      );
      generatedSpec = true;
    }

    if (i === tokens.length - 1) {
      // Don't update state for last token.
      break;
    }

    const token = tokens[i].text;

    const lastArgObject = getCurrentArg(getArgState(state));
    const lastArgType = preferOptionArg(state)
      ? TokenType.OptionArg
      : TokenType.SubcommandArg;

    const lastState = state;

    state = updateState(state, token);
    localLogger.debug("Parser state update", { state });

    const { annotations } = state;
    const lastAnnotation = annotations[annotations.length - 1];
    const lastType =
      lastAnnotation.type === TokenType.Composite
        ? lastAnnotation.subtokens[lastAnnotation.subtokens.length - 1].type
        : lastAnnotation.type;

    if (
      lastType === lastArgType &&
      lastArgObject?.parserDirectives?.alias &&
      !substitutedAliases.has(token)
    ) {
      const { alias } = lastArgObject.parserDirectives;
      try {