diff --git a/src/prompt_toolkit/shortcuts/prompt.py b/src/prompt_toolkit/shortcuts/prompt.py index 68cfeb9aa..23614386c 100644 --- a/src/prompt_toolkit/shortcuts/prompt.py +++ b/src/prompt_toolkit/shortcuts/prompt.py @@ -1499,7 +1499,7 @@ def prompt( def create_confirm_session( - message: AnyFormattedText, suffix: str = " (y/n) " + message: AnyFormattedText, suffix: str = " (y/n) ", default: bool = False ) -> PromptSession[bool]: """ Create a `PromptSession` object for the 'confirm' function. @@ -1518,6 +1518,11 @@ def no(event: E) -> None: session.default_buffer.text = "n" event.app.exit(result=False) + @bindings.add(Keys.Enter) + def newline(event: E) -> None: + session.default_buffer.text = "y" if default else "n" + event.app.exit(result=default) + @bindings.add(Keys.Any) def _(event: E) -> None: "Disallow inserting other text." @@ -1530,9 +1535,13 @@ def _(event: E) -> None: return session -def confirm(message: AnyFormattedText = "Confirm?", suffix: str = " (y/n) ") -> bool: +def confirm( + message: AnyFormattedText = "Confirm?", + suffix: str = " (y/n) ", + default: bool = False, +) -> bool: """ Display a confirmation prompt that returns True/False. """ - session = create_confirm_session(message, suffix) + session = create_confirm_session(message, suffix, default) return session.prompt()