1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-09-04 14:55:51 +03:00

directly implement Widget for &TextArea (fix #78)

Этот коммит содержится в:
rhysd
2024-08-02 15:53:48 +09:00
родитель dea5b03335
Коммит c99108bf45
20 изменённых файлов: 134 добавлений и 116 удалений

Просмотреть файл

@@ -188,13 +188,12 @@ impl<'a> Editor<'a> {
let chunks = layout.split(f.size());
if search_height > 0 {
f.render_widget(self.search.textarea.widget(), chunks[0]);
f.render_widget(&self.search.textarea, chunks[0]);
}
let buffer = &self.buffers[self.current];
let textarea = &buffer.textarea;
let widget = textarea.widget();
f.render_widget(widget, chunks[1]);
f.render_widget(&textarea, chunks[1]);
// Render status line
let modified = if buffer.modified { " [modified]" } else { "" };

Просмотреть файл

@@ -26,7 +26,7 @@ fn main() -> io::Result<()> {
loop {
term.draw(|f| {
f.render_widget(textarea.widget(), f.size());
f.render_widget(&textarea, f.size());
})?;
match crossterm::event::read()?.into() {
Input { key: Key::Esc, .. } => break,

Просмотреть файл

@@ -31,8 +31,7 @@ fn main() -> io::Result<()> {
loop {
term.draw(|f| {
let chunks = layout.split(f.size());
let widget = textarea.widget();
f.render_widget(widget, chunks[0]);
f.render_widget(&textarea, chunks[0]);
})?;
match crossterm::event::read()?.into() {

Просмотреть файл

@@ -38,7 +38,7 @@ fn main() -> io::Result<()> {
textarea.set_placeholder_text("prompt message");
loop {
term.draw(|f| {
f.render_widget(textarea.widget(), area);
f.render_widget(&textarea, area);
})?;
match crossterm::event::read()?.into() {
Input { key: Key::Esc, .. } => break,

Просмотреть файл

@@ -50,8 +50,7 @@ fn main() -> io::Result<()> {
loop {
term.draw(|f| {
let chunks = layout.split(f.size());
let widget = textarea.widget();
f.render_widget(widget, chunks[0]);
f.render_widget(&textarea, chunks[0]);
})?;
match crossterm::event::read()?.into() {

Просмотреть файл

@@ -54,8 +54,7 @@ fn main() -> io::Result<()> {
term.draw(|f| {
let chunks = layout.split(f.size());
for (textarea, chunk) in textarea.iter().zip(chunks.iter()) {
let widget = textarea.widget();
f.render_widget(widget, *chunk);
f.render_widget(textarea, *chunk);
}
})?;
match crossterm::event::read()?.into() {

Просмотреть файл

@@ -57,8 +57,7 @@ fn main() -> Result<(), Box<dyn Error>> {
Event::Tick => {}
}
term.draw(|f| {
let widget = textarea.widget();
f.render_widget(widget, f.size());
f.render_widget(&textarea, f.size());
})?;
}

Просмотреть файл

@@ -22,8 +22,7 @@ fn main() -> Result<(), Box<dyn Error>> {
// The event loop
loop {
term.draw(|f| {
let widget = textarea.widget();
f.render_widget(widget, f.size());
f.render_widget(&textarea, f.size());
})?;
if let Some(input) = term

Просмотреть файл

@@ -190,13 +190,12 @@ impl<'a> Editor<'a> {
let chunks = layout.split(f.size());
if search_height > 0 {
f.render_widget(self.search.textarea.widget(), chunks[0]);
f.render_widget(&self.search.textarea, chunks[0]);
}
let buffer = &self.buffers[self.current];
let textarea = &buffer.textarea;
let widget = textarea.widget();
f.render_widget(widget, chunks[1]);
f.render_widget(&textarea, chunks[1]);
// Render status line
let modified = if buffer.modified { " [modified]" } else { "" };

Просмотреть файл

@@ -28,7 +28,7 @@ fn main() -> io::Result<()> {
loop {
term.draw(|f| {
f.render_widget(textarea.widget(), f.size());
f.render_widget(&textarea, f.size());
})?;
match crossterm::event::read()?.into() {
Input { key: Key::Esc, .. } => break,

Просмотреть файл

@@ -57,8 +57,7 @@ fn main() -> Result<(), Box<dyn Error>> {
Event::Tick => {}
}
term.draw(|f| {
let widget = textarea.widget();
f.render_widget(widget, f.size());
f.render_widget(&textarea, f.size());
})?;
}

Просмотреть файл

@@ -34,7 +34,7 @@ fn main() -> io::Result<()> {
.direction(Direction::Vertical)
.constraints([Constraint::Length(height), Constraint::Min(0)])
.split(f.size());
f.render_widget(textarea.widget(), chunks[0]);
f.render_widget(&textarea, chunks[0]);
})?;
match crossterm::event::read()?.into() {
Input { key: Key::Esc, .. } => break,

Просмотреть файл

@@ -419,7 +419,7 @@ fn main() -> io::Result<()> {
let mut vim = Vim::new(Mode::Normal);
loop {
term.draw(|f| f.render_widget(textarea.widget(), f.size()))?;
term.draw(|f| f.render_widget(&textarea, f.size()))?;
vim = match vim.transition(crossterm::event::read()?.into(), &mut textarea) {
Transition::Mode(mode) if vim.mode != mode => {