diff --git a/Userland/Libraries/LibGUI/VimEditingEngine.cpp b/Userland/Libraries/LibGUI/VimEditingEngine.cpp index c4373afdb5..03dcb31a29 100644 --- a/Userland/Libraries/LibGUI/VimEditingEngine.cpp +++ b/Userland/Libraries/LibGUI/VimEditingEngine.cpp @@ -1149,6 +1149,10 @@ bool VimEditingEngine::on_key_in_visual_mode(KeyEvent const& event) casefold_selection(Casing::Uppercase); switch_to_normal_mode(); return true; + case (KeyCode::Key_Tilde): + casefold_selection(Casing::Invertcase); + switch_to_normal_mode(); + return true; default: break; } @@ -1428,6 +1432,9 @@ void VimEditingEngine::casefold_selection(Casing casing) case Casing::Lowercase: m_editor->insert_at_cursor_or_replace_selection(m_editor->selected_text().to_lowercase()); return; + case Casing::Invertcase: + m_editor->insert_at_cursor_or_replace_selection(m_editor->selected_text().invert_case()); + return; } } diff --git a/Userland/Libraries/LibGUI/VimEditingEngine.h b/Userland/Libraries/LibGUI/VimEditingEngine.h index d9e956524a..f3b372890f 100644 --- a/Userland/Libraries/LibGUI/VimEditingEngine.h +++ b/Userland/Libraries/LibGUI/VimEditingEngine.h @@ -162,7 +162,8 @@ private: enum class Casing { Uppercase, - Lowercase + Lowercase, + Invertcase }; VimMode m_vim_mode { VimMode::Normal };