---
feature_story: FS_80_82_13_35
feature_title: option list on describe with prefix
feature_status: TODO
---

This feature uses tangent token (FS_23_62_89_43) to narrow down enum items listed on `ServerAction.DescribeLineArgs`
(even if tangent token is considered unspecified = not consumed).

Currently, instead of reducing options on `ServerAction.DescribeLineArgs` (as described in this feature below),
prefix highlight (FS_11_87_76_73) is used to alleviate the need for this feature (FS_80_82_13_35).

However, when arg value is incomplete (its value does not match any enum item),
there is no reduction of options shown in description:

```sh
some_command goto host pro|
```

Actual:

```
ClassFunction:
  ActionType: goto [ExplicitPosArg]
  ObjectSelector: host [ExplicitPosArg]
ClassCluster:
  *CodeMaturity: ? dev qa prod
  ...
```

Expected (ideally):

```
ClassFunction:
  ActionType: goto [ExplicitPosArg]
  ObjectSelector: host [ExplicitPosArg]
ClassCluster:
  *CodeMaturity: ? prod
  ...
```

The suggestion is matches what `ServerAction.RelayLineArgs` sees now (see Actual above)
because unrecognized token does not reduce enum items.

The point of this feature (FS_80_82_13_35) is:

*   So far, `argrelay` does not allow incomplete arg values in case of multiple options on invocation.
*   But reducing shown options for a given prefix on `ServerAction.DescribeLineArgs` is also not a completion
    (so, making it work as Expected above for `ServerAction.DescribeLineArgs` will not be a conflict conceptually).

TODO: However, sometimes tangent token matches one of the option exactly, and all options hide because
current becomes `ExplicitPosArg`. Ideally, we want suggestion to match what is proposed, for example:

```
relay_demo goto service tt|
```

Then, description prints this (only one):

```
ClassService: 1
  CodeMaturity: dev [ImplicitValue]
  FlowStage: downstream [ImplicitValue]
  GeoRegion: apac [ImplicitValue]
  ClusterName: dev-apac-downstream [ImplicitValue]
  GroupLabel: rrr [ImplicitValue]
  ServiceName: tt [ExplicitPosArg]
  HostName: zxcv-dd [ImplicitValue]
  LiveStatus: [none]
  DataCenter: dc.11 [ImplicitValue]
  IpAddress: ip.172.16.1.2 [ImplicitValue]
```

But suggestion lists these (several):

```
tt   tt1  tt2
```

To match Tab-suggestion list with Alt+Shift+Q list, tangent token should not be considered complete.
