Advanced interactive input - adambajguz/Typin GitHub Wiki

In interactive mode by default advanced command input with command history and auto-completion is used.

Note: Auto-completion is not supported in normal/tool mode.

History

Command history is provided by InputHistoryProvider that (if needed) can be accessed with InputHistory property from ICliContext. Access to InputHistoryProvider is useful when you want to, e.g., disable history, clear it manually, or get all entries.

Entries from the history are accessed using up/down arrows in interactive mode. Escape key clears the input and resets history selection.

Auto-completion

To used command auto-completion simply press Tab or Shift + Tab as in normal terminal like bash or cmd.

Shortcuts handling

When advanced interactive input is used builder.UseInteractiveMode(useAdvancedInput: true); the default behavior of the terminal is lost, e.g., Ctrl + Delete won't delete a word on the left side of the cursor. To overcome this problem, Typin comes with its own shortcut/key/input handling system.

Key/Shortcut Action
Home Moves cursor to the beginning of the line.
End Moves cursor to the end of the line.
Escape Clear line.
Enter Line feed.
Backspace Delete previous character.
Delete Delete next word or whitespace.
Ctrl + Delete Delete next character.
Ctrl + Backspace Delete previous word or whitespace.
Tab Start forward or next command line completion.
Shift + Tab Start backward or previous command line completion.
Insert currently not supported :(
Go backward one character.
Go forward one character.
Ctrl + Move cursor to the next word on the left.
Ctrl + Move cursor to the next word on the right.
Ctrl + Move backward in the history.
Ctrl + Move forward in the history.

Acknowledgments: ReadLine library was an inspiration for history and auto-completion in Typin. Its source code was partially used and modified to fit into Typin.