Comments (1)
What's your data structure for text storage?
The text buffer implementation is a very simple array of line strings. The reason is its simplicity.
I know more efficient data structures for text editing such as gap buffer, piece table, rope, etc... but they are complicated. The reason to adopt them is their efficiency. However, no one haven't claimed about the performance of this crate. So the efficiency would not benefit no one for now (as far as I know). On the other hand, they have an obvious cons that they bring complexity and more external dependency. That's why I don't adopt them.
I want to write an editor and use this crate
I don't recommend using this crate for 'serious' text editor implementation. That's why I named this crate tui-textarea, not tui-text-editor. This crate aims to implement something like HTML's <textarea>
in terminal. (No one would think to use <textarea>
for serious text editor implementation.)
This crate has only very basic features for text editing. You'll soon find that this crate does not meet all of your text editor's requirements. I strongly recommend you creating your own TUI implementation built on top of great terminal libraries such as crossterm or termwiz directly.
from tui-textarea.
Related Issues (20)
- Feature request: prompt for single line TextArea HOT 3
- Samples on windows are inefficient HOT 14
- `insert_str` should accept newlines HOT 29
- hard tab now adds extra padding character on display HOT 4
- editor sample crashes on windows every other invokation HOT 4
- remove the <'a> requirement on TextArea HOT 8
- API improvement to allow fluent calls HOT 1
- refactor key input handling HOT 1
- add os clipboard support HOT 26
- Remove Emacs-like shortcuts from `TextArea::input` HOT 11
- Support bracketed-paste terminal mode
- trying to use tui-textarea in another project - version conflict HOT 13
- Support text "hints" HOT 1
- make lines field public HOT 1
- Allow input widgets to appear wherever the are in a terminal session HOT 2
- selection is really hard to use for the non `input` caller HOT 1
- Update to ratatui 0.26 HOT 2
- Feature Request: syntax highlighting HOT 4
- Is this still maintained ? HOT 5
- Can this please be converted to use portable-atomic? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tui-textarea.