@@ -36,7 +36,14 @@ def __init__(
3636
3737 def get_msg_from_choice (self , render_choice : RenderChoice ) -> str :
3838 if render_choice .choice_type == "module_start" :
39- return f"Start from module [#5593FF]{ render_choice .module .module_name } [/]"
39+ msg = ""
40+ if render_choice .module .module_name == self .plain_module .module_name :
41+ if render_choice .module .is_module_fully_rendered ():
42+ return f"Re-render the current module ([#5593FF]{ render_choice .module .module_name } [/])"
43+ else :
44+ return f"Start the current module ([#5593FF]{ render_choice .module .module_name } [/])"
45+ else :
46+ return f"Start from module [#5593FF]{ render_choice .module .module_name } [/]"
4047 elif render_choice .choice_type == "rerender_affected" and self .plain_module_render_state .change is not None :
4148 all_affected_modules = get_all_affected_modules_from_change (
4249 self .plain_module , self .plain_module_render_state
@@ -109,8 +116,7 @@ def on_mount(self) -> None:
109116 )
110117
111118 elif pr .last_render_module .is_module_fully_rendered ():
112- change_box .mount (Label ("--- Rendering finished ---" , classes = "rendering-info-row" ))
113- change_box .mount (Label ("The current module was fully rendered." , classes = "rendering-info-title" ))
119+ change_box .mount (Label ("The current module is fully rendered." , classes = "rendering-info-title" ))
114120 else :
115121 interrupted_frid = "1"
116122 interrupted_module = pr .last_render_module
@@ -147,7 +153,7 @@ def on_mount(self) -> None:
147153
148154 # Populate the ListView
149155 lv = self .query_one ("#choice-list" , ListView )
150- self .mount (Label ("How would you like to continue ?" , classes = "partial-render-question" ), before = lv )
156+ self .mount (Label ("How would you like to proceed ?" , classes = "partial-render-question" ), before = lv )
151157 for key , choice in self .render_choices .items ():
152158 lv .append (ListItem (Label (f"[bold]{ key } .[/bold] { self .get_msg_from_choice (choice )} " ), id = f"choice-{ key } " ))
153159 lv .focus ()
@@ -170,6 +176,16 @@ def on_choice_selected(self, event: ListView.Selected) -> None:
170176 if not item_id or not item_id .startswith ("choice-" ):
171177 raise ValueError (f"Invalid item ID: { item_id } " )
172178 key = item_id .split ("-" , 1 )[1 ]
179+ self ._select_choice (key )
180+
181+ def on_key (self , event ) -> None :
182+ """Allow selecting a choice by typing its number directly."""
183+ if event .key in self .render_choices :
184+ event .stop ()
185+ event .prevent_default ()
186+ self ._select_choice (event .key )
187+
188+ def _select_choice (self , key : str ) -> None :
173189 self .selected_choice = self .render_choices [key ]
174190 self .exit (self .selected_choice )
175191
0 commit comments