~ Textarea component for tui-realm ~
tui-textarea · tui-realm · Documentation
Developed by @veeso
Current version: 1.0.0 (23/06/2022)
tui-realm-textarea is an implementation of a textarea component for tui-realm. It is based on the tui-textarea component by rhysd.
toml
tui-realm-textarea = "^1.0.0"
Or if you don't use Crossterm, define the backend as you do with tui-realm:
toml
tui-realm-textarea = { version = "^1.0.0", default-features = false, features = [ "with-termion" ] }
View how to use the textarea component in the example. The example contains a simple text editor.
sh
cargo run --example demo --features clipboard
Press ESC
to quit
Commands:
| Cmd | Result | Behaviour |
|------------------------------------------------|----------------|-----------------------------------------|
| Custom($TEXTAREA_CMD_NEWLINE)
| None
| Insert newline |
| Custom($TEXTAREA_CMD_DEL_LINE_BY_END)
| None
| Delete line by end to current position |
| Custom($TEXTAREA_CMD_DEL_LINE_BY_HEAD)
| None
| Delete line by head to current position |
| Custom($TEXTAREA_CMD_DEL_WORD)
| None
| Delete the current word |
| Custom($TEXTAREA_CMD_DEL_NEXT_WORD)
| None
| Delete the next word |
| Custom($TEXTAREA_CMD_MOVE_WORD_FORWARD)
| None
| Move to the next word |
| Custom($TEXTAREA_CMD_MOVE_WORD_BACK)
| None
| Move to the previous word |
| Custom($TEXTAREA_CMD_MOVE_PARAGRAPH_BACK)
| None
| Move to the previous paragraph |
| Custom($TEXTAREA_CMD_MOVE_PARAGRAPH_FORWARD)
| None
| Move to the next paragraph |
| Custom($TEXTAREA_CMD_MOVE_TOP)
| None
| Move to the beginning of the file |
| Custom($TEXTAREA_CMD_MOVE_BOTTOM)
| None
| Move to the end of the file |
| Custom($TEXTAREA_CMD_UNDO)
| None
| Undo last change |
| Custom($TEXTAREA_CMD_REDO)
| None
| Redo last change |
| Custom($TEXTAREA_CMD_PASTE)
| None
| Paste the current content of the buffer |
| Cancel
| None
| Delete next char |
| Delete
| None
| Delete previous char |
| GoTo(Begin)
| None
| Go to the head of the line |
| GoTo(End)
| None
| Go to the end of the line |
| Move(Down)
| None
| Move to the line below |
| Move(Up)
| None
| Move to the line above |
| Move(Left)
| None
| Move cursor to the left |
| Move(Right)
| None
| Move cursor to the right |
| Scroll(Up)
| None
| Move by scrollstep lines up |
| Scroll(Down)
| None
| Move by scrollstep lines down |
| Type(ch)
| None
| Type a char in the editor |
| Submit
| Submit
| Get current lines |
❗ Paste command is supported only if the
clipboard
feature is enabled
State: the state returned is a Vec(String)
containing the lines in the text area.
Properties:
Borders(Borders)
: set borders properties for componentCustom($TREE_IDENT_SIZE, Size)
: Set space to render for each each depth levelCustom($TEXTAREA_MAX_HISTORY, Payload(One(Usize)))
: Set the history steps to recordCustom($TEXTAREA_CURSOR_STYLE, Style)
: Set the cursor styleCustom($TEXTAREA_CURSOR_LINE_STYLE, Style)
: Set the current line styleCustom($TEXTAREA_FOOTER_FMT, Payload(Tup2(Str, Style)))
: Set the format and the style for the footer barCustom($TEXTAREA_LINE_NUMBER_STYLE, Style)
: set the style for the line numberCustom($TEXTAREA_STATUS_FMT, Payload(Tup2(Str, Style)))
: Set the format and the style for the status barStyle(Style)
: Set the general style for the textareaCustom($TEXTAREA_TAB_SIZE, Size)
: Set the tab size to displayFocusStyle(Style)
: inactive styleScrollStep(Length)
: Defines the maximum amount of rows to scrollTitle(Title)
: Set box titleThe status and footer bars support a special syntax. The following keys can be inserted into the string:
{ROW}
: current row{COL}
: current columnThe developer documentation can be found on Rust Docs at https://docs.rs/tui-realm-textarea
Contributions, bug reports, new features and questions are welcome! 😉 If you have any question or concern, or you want to suggest a new feature, or you want just want to improve tui-realm, feel free to open an issue or a PR.
Please follow our contributing guidelines
View tui-realm-textarea's changelog HERE
If you like tui-realm and you're grateful for the work I've done, please consider a little donation 🥳
You can make a donation with one of these platforms:
tui-realm-textarea is licensed under the MIT license.
You can read the entire license HERE