Skip to content

Commit fe00ada

Browse files
author
tjazerzen
committed
Improve success message when rendering is completed
Display where the code was rendered
1 parent f13b3cf commit fe00ada

5 files changed

Lines changed: 31 additions & 11 deletions

File tree

module_renderer.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,6 @@ def render_module(self) -> None:
260260
self.loaded_modules = list[PlainModule]()
261261
_, _, rendering_failed = self._render_module(self.filename, self.render_range, True)
262262
if not rendering_failed:
263-
self.event_bus.publish(RenderCompleted())
263+
# Get the last module that completed rendering
264+
last_module_name = self.loaded_modules[-1].name if self.loaded_modules else ""
265+
self.event_bus.publish(RenderCompleted(module_name=last_module_name, build_folder=self.args.build_folder))

plain2code_events.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ class RenderContextSnapshot:
2424
module_name: str
2525

2626

27+
@dataclass
2728
class RenderCompleted(BaseEvent):
2829
"""Event emitted when rendering completes successfully."""
2930

30-
pass
31+
module_name: str
32+
build_folder: str
3133

3234

3335
@dataclass

tui/plain2code_tui.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,9 @@ def _handle_frid_state(
272272

273273
self._state_completion_handler.handle(segments, snapshot, previous_state_segments)
274274

275-
def on_render_completed(self, _event: RenderCompleted):
275+
def on_render_completed(self, event: RenderCompleted):
276276
"""Handle successful render completion."""
277-
self._render_success_handler.handle()
277+
self._render_success_handler.handle(event.module_name, event.build_folder)
278278

279279
def on_render_failed(self, event: RenderFailed):
280280
"""Handle render failure."""

tui/state_handlers.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ def handle(self, _: list[str], _snapshot: RenderContextSnapshot, _previous_state
289289

290290

291291
class RenderSuccessHandler:
292-
"""Handler for ERROR state."""
292+
"""Handler for successful render completion."""
293293

294294
def __init__(self, tui):
295295
"""Initialize handler with TUI instance.
@@ -299,9 +299,14 @@ def __init__(self, tui):
299299
"""
300300
self.tui = tui
301301

302-
def handle(self) -> None:
303-
"""Handle ERROR state."""
304-
display_success_message(self.tui)
302+
def handle(self, module_name: str, build_folder: str) -> None:
303+
"""Handle successful render completion.
304+
305+
Args:
306+
module_name: Name of the last module that completed rendering
307+
build_folder: The build folder path
308+
"""
309+
display_success_message(self.tui, module_name, build_folder)
305310

306311

307312
class RenderErrorHandler:

tui/widget_helpers.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Widget update helper utilities for Plain2Code TUI."""
22

3+
import os
34
from datetime import datetime
45

56
from textual.css.query import NoMatches
@@ -97,10 +98,20 @@ def get_frid_progress(tui) -> FRIDProgress:
9798
return tui.query_one(f"#{TUIComponents.FRID_PROGRESS.value}", FRIDProgress)
9899

99100

100-
def display_success_message(tui):
101+
def display_success_message(tui, module_name: str, build_folder: str):
102+
"""Display success message with code location and exit instructions.
103+
104+
Args:
105+
tui: The Plain2CodeTUI instance
106+
module_name: Name of the module that was rendered
107+
build_folder: The build folder path
108+
"""
109+
110+
code_location = os.path.join(build_folder, module_name)
111+
message = f"[#79FC96]✓ Rendering finished![/#79FC96] [#888888](ctrl+c to exit)[/#888888]\n[#888888]Generated code: {code_location}[/#888888] "
112+
101113
widget: Static = tui.query_one(f"#{TUIComponents.RENDER_STATUS_WIDGET.value}", Static)
102-
widget.add_class("success")
103-
widget.update("✓ Rendering finished!")
114+
widget.update(message)
104115

105116

106117
def set_frid_progress_to_stopped(tui):

0 commit comments

Comments
 (0)