1
0
Fork 0
textual-autocomplete/examples/partial_completions.py
Daniel Baumann 0832c185c0
Adding upstream version 4.0.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-04 22:09:41 +02:00

43 lines
1.3 KiB
Python

"""By default, textual-autocomplete replaces the entire content of a widget
with a completion.
Sometimes, however, you may wish to insert the completion text, or otherwise use
custom logic to determine the end-state of the Input after the user selects a completion.
For example, if completing a path on a filesystem, you may wish to offer partial completions
of the path based on the current content of the Input. Then, when the user selects a completion,
you could offer a different set of completions based on the new path in the Input.
"""
from textual.app import App, ComposeResult
from textual.containers import Container
from textual.widgets import Input, Label
from textual_autocomplete import PathAutoComplete
class FileSystemPathCompletions(App[None]):
CSS = """
#container {
align: center middle;
padding: 2 4;
}
#label {
margin-left: 3;
}
Input {
width: 80%;
}
"""
def compose(self) -> ComposeResult:
with Container(id="container"):
yield Label("Choose a file!", id="label")
input_widget = Input(placeholder="Enter a path...")
yield input_widget
yield PathAutoComplete(target=input_widget, path="../textual")
if __name__ == "__main__":
app = FileSystemPathCompletions()
app.run()