ladybird/Userland
Robbie Vanbrabant 26a3b42a15 LibGUI: Add visual line mode to VimEditingEngine
Applications using the Vim emulation engine now support line-wise text
selection.

We already have support for character-wise text selection, by pressing
`v` from normal mode.

However now can also trigger line-wise text selection by pressing
`shift+v` from normal mode, and then using vertical motion commands
(e.g. `j` or `k`) to expand the selection. This is a standard vim
feature.

In visual line mode the following operations are supported:

  * `escape`: back to normal mode
  * `u`: convert to lowercase
  * `U`: convert to uppercase
  * `~`: toggle case
  * `ctrl+d`: move down by 50% of page height
  * `ctrl+u`: move up by 50% of page height
  * `d` or `x`: delete selection
  * `c`: change selection
  * `y`: copy selection
  * `page up`: move up by 100% of page height
  * `page down`: move down by 100% of page height

Notably I didn't implement pressing `v` to go to regular
(character-wise) visual mode straight from visual line mode. This is
tricky to implement in the current code base, and there's an
alternative, which is to take a detour via normal mode.
2022-08-26 12:50:30 +02:00
..
Applets WindowServer+WorkspacePicker: Adjust active and inactive colors 2022-08-16 16:41:47 +02:00
Applications SpreadSheet: Pass parent window when constructing About action 2022-08-26 12:48:05 +02:00
Demos Eyes: Add an option to show/hide the window frame 2022-08-25 13:42:17 +02:00
DevTools LibGUI+WindowServer: Introduce WindowModes 2022-08-25 13:28:50 +02:00
DynamicLoader LibPthread: Implement named semaphores 2022-07-21 16:39:22 +02:00
Games Chess: Highlight piece origin square when dragging piece 2022-08-26 09:53:13 +01:00
Libraries LibGUI: Add visual line mode to VimEditingEngine 2022-08-26 12:50:30 +02:00
Services FileSystemAccessServer: Set dummy child to WindowMode::Passive 2022-08-26 12:48:05 +02:00
Shell Userland: Consolidate most PATH resolving into a single implementation 2022-08-23 19:00:04 +01:00
Utilities Userland: Consolidate most PATH resolving into a single implementation 2022-08-23 19:00:04 +01:00
CMakeLists.txt Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake option 2022-05-02 01:46:18 +02:00