---
feature_story: FS_23_62_89_43
feature_title: tangent arg value completion
feature_status: TEST
---

For example, `amer` is a tangent arg value (the one "touched" by cursor):
```
some_command goto host dev amer| upstream qwer
```

Tangent arg value is always removed from consumption in case of:
*   `CompType.PrefixShown`
*   `CompType.PrefixHidden`
*   `CompType.MenuCompletion`

When all arg values are already consumed (except the tangent one) and it is time to decide what suggestion to generate,
there are some questions:

*   If user already completed this value before, then it makes sense to try to complete it the same way, right?

    For example, it `amer` was result of previous suggestion, completing it again as `am|er` by moving cursor
    to the center should result again in `amer`.

*   Many arg values might be skipped by previous suggestions (as singled out `data_envelope` need no clarification).

    In case of empty arg value (cursor has no tangent arg value),
    it makes sense to continue suggesting that way (especially, at the end of the line):

    ```
    some_command goto host dev amer upstream qwer |
    ```

    However, when it has tangent arg value,
    it is better to try to complete from unspecified arg types of previously found data envelopes
    (not that `upstream` will be unspecified because tangent arg is excluded from consumption):

    ```
    some_command goto host dev amer up|stream qwer
    ```

    In fact, this is naturally a default behaviour because `argrelay` tries to propose for the next missing arg type.

Solution: keep unified behaviour (same as for next non-tangent args) by proposing only next missing arg type.

