ladybird/Userland/Libraries
sin-ack 53aec3e06d LibGUI: Implement Vim motion system
This patch implements Vim motions.  The VimMotion class will accept
keycodes from the editing engine to build up a motion, and will
signal when a motion is complete via VimMotion::is_complete().  The
editing engine can then call VimMotion::get_range() to obtain a
TextRange object which can be used to perform operations on the text,
or VimMotion::get_position() to obtain a TextPosition which is the
new position of the cursor after the motion.

Currently, the following motions are supported:

- h/j/k/l, regular Vim line and character movements
- 0/^/$, start/end of line and start of non-blank
- w/e/b/ge, word-related movements
- W/E/B/gE, WORD (anything non-blank) versions of the above motions
- gg/G, document related movements
- t/f, to/find character

All motions except gg/G accept a number prefix to repeat the motion that
many times.

This patch updates insert, normal and visual modes to use this motion
system for movement.
2021-04-25 10:41:16 +02:00
..
LibArchive AK+Userland: Use idan.horowitz@serenityos.org for my copyright headers 2021-04-22 22:42:38 +02:00
LibAudio AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibC LibC+LibELF: Implement more fully-features dlfcn functionality 2021-04-25 10:14:50 +02:00
LibChess Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibCompress AK+Userland: Move AK/TestSuite.h into LibTest and rework Tests' CMake 2021-04-25 09:36:49 +02:00
LibCore AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibCoreDump Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
LibCpp LibCpp: Convert ScopeLogger to use AK:SourceLocation 2021-04-25 09:32:03 +02:00
LibCrypt Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibCrypto AK+Userland: Use mpfard@serenityos.org for my copyright headers 2021-04-22 22:19:09 +02:00
LibDebug Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibDesktop AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibDiff Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibDl LibC+LibELF: Implement more fully-features dlfcn functionality 2021-04-25 10:14:50 +02:00
LibELF LibC+LibELF: Implement more fully-features dlfcn functionality 2021-04-25 10:14:50 +02:00
LibGemini AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibGfx AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibGUI LibGUI: Implement Vim motion system 2021-04-25 10:41:16 +02:00
LibHTTP AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibImageDecoderClient Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibIPC Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibJS LibJS: Use linusg@serenityos.org for my new copyright headers, too 2021-04-24 20:16:31 +02:00
LibKeyboard Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibLine Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibM LibM: Add more macros; increase precision of existing macros 2021-04-23 09:11:07 +02:00
LibMarkdown Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibPCIDB AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibProtocol AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibPthread LibC: Move the __pthread_mutex_trylock function to LibC 2021-04-25 10:14:50 +02:00
LibRegex AK+Userland: Move AK/TestSuite.h into LibTest and rework Tests' CMake 2021-04-25 09:36:49 +02:00
LibSQL AK+Userland: Move AK/TestSuite.h into LibTest and rework Tests' CMake 2021-04-25 09:36:49 +02:00
LibSymbolClient Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibSyntax Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibSystem Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibTest AK+Userland: Move AK/TestSuite.h into LibTest and rework Tests' CMake 2021-04-25 09:36:49 +02:00
LibTextCodec Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibThread AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibTLS LibTLS: Call the read hooks after processing messages too 2021-04-23 13:14:35 +02:00
LibTTF AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibVT Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibWeb LibWeb: Utilize SourceLocation for HTMLDocumentParser logging 2021-04-25 09:32:03 +02:00
LibWebSocket AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
LibX86 UE+LibX86: Support bigger reads and writes 2021-04-23 22:50:53 +02:00
CMakeLists.txt LibC+LibELF: Implement more fully-features dlfcn functionality 2021-04-25 10:14:50 +02:00