CLI にプロンプト ツールキットを使用しています。私が直面している問題は、複数のオプションがあり、ユーザーが「Enter」を押すとコマンドが実行される場合です。「入力」には別の動作が必要です。ユーザーが「Enter」を押すとオプションが選択され、ユーザーがもう一度「Enter」を押すとコマンドが実行されます。以下のコードを追加しました。
kb = key_binding.KeyBindings()
@kb.add('enter')
def _enter_key(event) -> None:
buff = event.current_buffer
if not buff.complete_state:
named_commands.accept_line(event)
else:
named_commands.complete(event)
session = PromptSession(message=cli_command, style=style if colors_enabled else None, complete_while_typing=True)
text = session.prompt(completer=multithread_completer, default=document, pre_run=session.default_buffer.start_completion, key_bindings=kb)
ただし、オプションが「a ab abc」であり、ユーザーが「a」を選択して「Enter」を押すと、「タブ」と同様に機能します。3つのオプションが表示されます。「a」のみを選択してください。私が間違っていることを教えてください