diff --git a/local/recipes/tui/tlc/source/src/editor/menubar.rs b/local/recipes/tui/tlc/source/src/editor/menubar.rs index ebfe52884c..739988dfd6 100644 --- a/local/recipes/tui/tlc/source/src/editor/menubar.rs +++ b/local/recipes/tui/tlc/source/src/editor/menubar.rs @@ -93,6 +93,8 @@ pub enum EditorCmd { ToggleOverwrite, /// Delete character/selection (MC CK_Remove). Delete, + /// Toggle column/stream selection mode (MC CK_Mark). + ToggleColumnMode, } /// Outcome of a menu-bar key press. @@ -220,6 +222,7 @@ impl EditorMenuBar { MenuItem::item("Delete", 'd', EditorCmd::Delete), MenuItem::separator(), MenuItem::item("Select all", 'a', EditorCmd::MarkAll), + MenuItem::item("Toggle column", 't', EditorCmd::ToggleColumnMode), ], ), Menu::new( diff --git a/local/recipes/tui/tlc/source/src/editor/mod.rs b/local/recipes/tui/tlc/source/src/editor/mod.rs index 83baeff090..b3ec1c6f6e 100644 --- a/local/recipes/tui/tlc/source/src/editor/mod.rs +++ b/local/recipes/tui/tlc/source/src/editor/mod.rs @@ -1310,6 +1310,15 @@ impl Editor { self.message = Some("Block copied".to_string()); } } + EditorCmd::ToggleColumnMode => { + if self.cursor.selection_mode() == crate::editor::cursor::SelectionMode::Column { + self.cursor.clear_selection(); + self.message = Some("Stream selection".to_string()); + } else { + self.cursor.start_column_selection(); + self.message = Some("Column selection".to_string()); + } + } EditorCmd::Delete => { if self.cursor.has_selection() { self.cursor.delete_selection(&mut self.buffer);