---
feature_story: FS_11_87_76_73
feature_title: highlight tangent prefix
feature_status: TEST
---

Function FS_02_25_41_81 (func_id_query_enum_items) does not reduce values based on tangent token - see FS_80_82_13_35.

When FS_02_25_41_81 (func_id_query_enum_items) lists many enum items for properties,
it is often useful to highlight prefixes (see FS_32_05_46_00 startswith) within values
matching left part of the tangent token (see FS_23_62_89_43 tangent token).

Which values to highlight?
The behavior is different per server action:

*   `ServerAction.DescribeLineArgs`

    Tangent token is consumed if possible.

    TODO: See Alt+Shift+Q = FS_02_25_41_81 (func_id_query_enum_items).

*   `ServerAction.ProposeArgValues`

    Tangent token is removed from consumption.

    TODO: See Tab-completion = FS_80_45_89_81 (propose_values).

The values we want to highlight are better be those which may be part of Tab-completion.
We do not know exact set as the value set in `ServerAction.DescribeLineArgs` and `ServerAction.ProposeArgValues`
may differ a lot (by consuming tangent value).

But, logically, we can decide whether to highlight each `ArgSource`:

*   `ArgSource.DefaultValue`: Yes

    Yes, especially those values part of options avoided by setting default (FS_72_53_55_13).

*   `ArgSource.ImplicitValue`: Yes

    The implicit values are debatable: if it is already selected, should we highlight it of user to override?

    Solution: yes, highlight for now because override is possible - see FS_90_48_11_45 (forced assignment).

*   `ArgSource.ExplicitPosArg`: Yes

    Yes, because of the diff between `ServerAction.DescribeLineArgs` and `ServerAction.ProposeArgValues` (above).

*   `ArgSource.ExplicitNamedArg`: TODO: FS_20_88_05_60 named args

*   `ArgSource.InitValue`: No

    No, because it cannot be affected by user.
