mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-28 06:51:16 +08:00
Enhance CLI layout with floating completion menu
- Updated the layout in HermesCLI to include a floating completion menu, improving user experience by providing real-time suggestions as users type. - Refactored the layout structure to utilize FloatContainer, ensuring the input area remains accessible while displaying the completion menu dynamically.
This commit is contained in:
24
cli.py
24
cli.py
@@ -32,8 +32,9 @@ from prompt_toolkit.history import FileHistory
|
||||
from prompt_toolkit.styles import Style as PTStyle
|
||||
from prompt_toolkit.patch_stdout import patch_stdout
|
||||
from prompt_toolkit.application import Application
|
||||
from prompt_toolkit.layout import Layout, HSplit, Window, FormattedTextControl
|
||||
from prompt_toolkit.layout import Layout, HSplit, Window, FormattedTextControl, Float, FloatContainer
|
||||
from prompt_toolkit.layout.dimension import Dimension
|
||||
from prompt_toolkit.layout.menus import CompletionsMenu
|
||||
from prompt_toolkit.widgets import TextArea
|
||||
from prompt_toolkit.key_binding import KeyBindings
|
||||
from prompt_toolkit.completion import Completer, Completion
|
||||
@@ -1654,13 +1655,22 @@ class HermesCLI:
|
||||
height=get_hint_height,
|
||||
)
|
||||
|
||||
# Layout with dynamic spacer and input at bottom
|
||||
# Layout with dynamic spacer, input at bottom, and floating completion menu
|
||||
layout = Layout(
|
||||
HSplit([
|
||||
Window(height=0), # Expands to push everything to bottom
|
||||
spacer,
|
||||
input_area,
|
||||
])
|
||||
FloatContainer(
|
||||
content=HSplit([
|
||||
Window(height=0), # Expands to push everything to bottom
|
||||
spacer,
|
||||
input_area,
|
||||
]),
|
||||
floats=[
|
||||
Float(
|
||||
xcursor=True,
|
||||
ycursor=True,
|
||||
content=CompletionsMenu(max_height=12, scroll_offset=1),
|
||||
)
|
||||
],
|
||||
)
|
||||
)
|
||||
|
||||
# Style for the application
|
||||
|
||||
Reference in New Issue
Block a user