tui-realm-textarea

~ Textarea component for tui-realm ~

tui-textarea · tui-realm · Documentation

Developed by @veeso

Current version: 1.1.2 (29/08/2023)

License-MIT Repo stars Downloads counter Latest version Ko-fi

CI Docs



About tui-realm-textarea ✏️

tui-realm-textarea is an implementation of a textarea component for tui-realm. It is based on the tui-textarea component by rhysd.

Demo


Get started 🏁

Add tui-realm-textarea to your Cargo.toml 🦀

toml tui-realm-textarea = "^1.1.0"

Or if you don't use Crossterm, define the backend as you do with tui-realm:

toml tui-realm-textarea = { version = "^1.1.0", default-features = false, features = [ "with-termion" ] }

Features ⚙️

These features can be enabled in tui-realm-textarea:

Examples 📋

View how to use the textarea component in the example. The example contains a simple text editor.

sh cargo run --example demo --features clipboard,search

Press ESC to quit


Component API

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 | | Custom($TEXTAREA_CMD_SEARCH_BACK) | None | Go to the previous search match | | Custom($TEXTAREA_CMD_SEARCH_FORWARD) | None | Go to the next search match | | 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:

Footer and status format

The status and footer bars support a special syntax. The following keys can be inserted into the string:


Documentation 📚

The developer documentation can be found on Rust Docs at https://docs.rs/tui-realm-textarea


Contributing and issues 🤝🏻

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


Changelog ⏳

View tui-realm-textarea's changelog HERE


Support the developer ☕

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:

ko-fi PayPal


License 📃

tui-realm-textarea is licensed under the MIT license.

You can read the entire license HERE