add SelectAll to TextEditor

This commit is contained in:
PgBiel 2024-03-10 15:47:38 -03:00 committed by Héctor Ramón Jiménez
parent 23d9497e7f
commit 76f5bc2cce
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
3 changed files with 28 additions and 0 deletions

View file

@ -70,6 +70,8 @@ pub enum Action {
SelectWord,
/// Select the line at the current cursor.
SelectLine,
/// Select the entire buffer.
SelectAll,
/// Perform an [`Edit`].
Edit(Edit),
/// Click the [`Editor`] at the given [`Point`].

View file

@ -385,6 +385,27 @@ impl editor::Editor for Editor {
}));
}
}
Action::SelectAll => {
let buffer = editor.buffer();
if buffer.lines.len() > 1
|| buffer
.lines
.first()
.is_some_and(|line| !line.text().is_empty())
{
let cursor = editor.cursor();
editor.set_select_opt(Some(cosmic_text::Cursor {
line: 0,
index: 0,
..cursor
}));
editor.action(
font_system.raw(),
motion_to_action(Motion::DocumentEnd),
);
}
}
// Editing events
Action::Edit(edit) => {

View file

@ -762,6 +762,11 @@ impl Update {
{
return Some(Self::Paste);
}
keyboard::Key::Character("a")
if modifiers.command() =>
{
return Some(Self::Action(Action::SelectAll));
}
_ => {}
}