A text area (multi-line input) with syntax highlighting for Textual
Project description
Textual Textarea
Installation
pip install textual-textarea
Usage
Initializing the Widget
The TextArea is a Textual Widget. You can add it to a Textual
app using compose
or mount
:
from textual_textarea import TextArea
from textual.app import App, ComposeResult
class TextApp(App, inherit_bindings=False):
def compose(self) -> ComposeResult:
yield TextArea(language="python", theme="solarized-dark")
def on_mount(self) -> None:
ta = self.query_one(TextArea)
ta.focus()
app = TextApp()
app.run()
In addition to the standard Widget arguments, TextArea accepts two additional, optional arguments when initializing the widget:
- language: Must be
None
or the short name of a Pygments lexer, e.g.,python
,sql
,as3
. Defaults to None. - theme: Must be name of a Pygments style, e.g.,
bw
,github-dark
,solarized-light
. Defaults tomonokai
.
The TextArea supports many actions and key bindings. For proper binding of ctrl+c
to the COPY action,
you must initialize your App with inherit_bindings=False
(as shown above), so that ctrl+c
does not quit the app. The TextArea implements ctrl+q
as quit; you way wish to mimic that in your app so that other in-focus widgets use the same behavior.
Interacting with the Widget
Getting and Setting Text
The TextArea exposes a text
property that contains the full text contained in the widget. You can retrieve or set the text by interacting with this property:
ta = self.query_one(TextArea)
old_text = ta.text
ta.text = "New Text!\n\nMany Lines!"
Getting Theme Colors
If you would like the rest of your app to match the colors from the TextArea's theme, they are exposed via the theme_colors
property.
ta = self.query_one(TextArea)
color = ta.theme_colors.contrast_text_color
bgcolor = ta.theme_colors.bgcolor
highlight = ta.theme_colors.selection_bgcolor
You cannot set these colors this way, however.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for textual_textarea-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63de9013b55f95232e999ace2f698abb9b7e68bdc2a77e5ea86fa9b43ce0a5bd |
|
MD5 | 3c8130d6a48acc86eeca51029bdeb922 |
|
BLAKE2b-256 | 9f9321f1dec2b4d56052a3b855ab87a950b999a4983780af77d048366051026d |