Add interactive recv code completion #114
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This implementation avoids adding a new readline library by using
golang.org/x/term, which is already an indirect dependency. It is basic (doesn't display a list; keys like Home, End, and even Delete don't work) but nevertheless useful and closes the gap with the Python original.Completion builds on the existing function
recvCodeCompletion, which has been refactored to remove a return value and unused arguments specific to Cobra. It works on the last code word of the input line in one of three modes:There is a fallback for systems where an interactive terminal isn't detected. Empty and whitespace input cancels the receive action without an error. This is because pressing Ctrl-C in
ReadLineresults in empty input. It seems like good UX anyway.Resolves #105.