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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64b9bd6a8298594d1661d983ecaa54ea6bb6a134d6668b22abde61ac79f0b902 |
|
MD5 | 7f93c5f2df6293a26c4852783cbafce2 |
|
BLAKE2b-256 | c9b4ec92bff9a950414cd769c3e516abab6a307fcf005ae1bc1a687b388a7f71 |