Skip to content

Commit 78fe390

Browse files
pritambaraljonathanslenders
authored andcommitted
Allow PromptSession to take Document as default
Text defaults in prompts are nice, but sometimes it is nicer to be able to specify more than just the text in the default, e.g., cursor position. Because PromptSession converts the provided default into a Document anyway, this change makes PromptSession also accept a pre-made Document as default.
1 parent a1fa6f3 commit 78fe390

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

prompt_toolkit/shortcuts/prompt.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ def prompt(
797797
tempfile_suffix: Optional[str] = None,
798798

799799
# Following arguments are specific to the current `prompt()` call.
800-
default: str = '',
800+
default: Union[str, Document] = '',
801801
accept_default: bool = False,
802802
pre_run: Optional[Callable[[], None]] = None) -> _T:
803803
"""
@@ -901,7 +901,7 @@ def prompt(
901901
self.tempfile_suffix = tempfile_suffix
902902

903903
self._add_pre_run_callables(pre_run, accept_default)
904-
self.default_buffer.reset(Document(default))
904+
self.default_buffer.reset(default if isinstance(default, Document) else Document(default))
905905
self.app.refresh_interval = self.refresh_interval # This is not reactive.
906906

907907
return self.app.run()
@@ -950,7 +950,7 @@ async def prompt_async(
950950
tempfile_suffix: Optional[str] = None,
951951

952952
# Following arguments are specific to the current `prompt()` call.
953-
default: str = '',
953+
default: Union[str, Document] = '',
954954
accept_default: bool = False,
955955
pre_run: Optional[Callable[[], None]] = None) -> _T:
956956

@@ -1024,7 +1024,7 @@ async def prompt_async(
10241024
self.tempfile_suffix = tempfile_suffix
10251025

10261026
self._add_pre_run_callables(pre_run, accept_default)
1027-
self.default_buffer.reset(Document(default))
1027+
self.default_buffer.reset(default if isinstance(default, Document) else Document(default))
10281028
self.app.refresh_interval = self.refresh_interval # This is not reactive.
10291029

10301030
return await self.app.run_async()

0 commit comments

Comments
 (0)