---
feature_story: FS_41_40_39_44
feature_title: suggest from tree path
feature_status: TODO
---


This feature is related to FS_01_89_09_24 tree_path_selecting_interp.

The feature proposes to have special `arg_type` (special case) which is not based on loaded data,
but based on config of interpreter (FS_01_89_09_24 tree_path_selecting_interp). 

For example:

*   When `itemize_values` is called, the `arg_value` lists are composed based on only `search_control`:

    ```
    relay_demo | # Alt+Shift+Q
    ```
    
    ```
    some_command 
    ClassFunction: 6
      FunctionCategory: external [InitValue]
      *ActionType: ? goto desc list
      ObjectSelector: ? host service
    ```

    Function `_contribute_to_completion` is ineffective because `itemize_values` uses
    force `RunMode.InvocationMode` and this function checks for:

    ```
    if self.parsed_ctx.run_mode == RunMode.CompletionMode
    ```

*   When args are suggested, the `arg_value` lists includes both:

    *   `arg_value` lists from currently expected `arg_type`
    *   next values based on current tree path as explained in FS_01_89_09_24 tree_path_selecting_interp.

    ```
    relay_demo | # Tab
    ```
    
    ```
    intercept help subtree goto desc list
    ```

This feature proposes to invoke contribution to completion all the time,
and use separate field in the output of `itemize_values` to list what is proposed
by the FS_01_89_09_24 tree_path_selecting_interp.
