---
feature_story: FS_71_87_33_52
feature_title: func_id_help_hint
feature_status: PARTIAL
---

TODO: TODO_16_95_40_30: split `help_doc` and `help_hint` concepts:
Split this features into `SpecialFunc.func_id_help_hint` and `help_hint` for the `prop_name`:
There are two parts of `help_hint` feature:
*   `func_id_help_hint` is part of `DelegatorHelp` which lists `help_hint` prop provided by each loaded func.
*   General `help_hint` per `prop_name`.

Help hint is a single line explanation which can be shown:
*   next to suggested `arg_value` during completion
*   in listing of `data_envelope`-s found as varargs (FS_18_64_57_18)

The trick is to keep providing extended string when there are multiple `arg_value` options,<br/>
then, when only single options is available,<br/>
`help_hint` (everything after first space: FS_99_81_19_25) is removed.

While `help_doc` (FS_94_30_49_28) can be shown on request,
`help_hint` shows up automatically during completion.

Implementation will likely involve a separate query
for `help_hint`-s per `prop_name`.

Currently, as a demo for `help_hint` during completion,
all help hints are stored once on startup (and do not change until server restarts)
into a dict with this structure:

```python
{
    f"{prop_name}": {
        f"{prop_value}": f"{help_hint}",
    },
}
```

At the startup, `data_envelope`-s of this class and values will populate dict above:

```python
{
    f"{ReservedPropName.envelope_class.name}": f"{ReservedEnvelopeClass.class_help.name}",
    f"{ReservedPropName.prop_name.name}": f"{prop_name}",
    f"{ReservedPropName.prop_value.name}": f"{prop_value}",
    f"{ReservedPropName.help_hint.name}": f"{help_text}",
}
```

