mirror of
https://github.com/RGBCube/serenity
synced 2025-05-25 21:05:07 +00:00
TextEditor+EditingEngine: Add support for the basics of Vim emulation
This commit is contained in:
parent
1c17ecdeb7
commit
b4a783d923
13 changed files with 1143 additions and 438 deletions
|
@ -56,6 +56,7 @@
|
|||
#include <LibGUI/Application.h>
|
||||
#include <LibGUI/BoxLayout.h>
|
||||
#include <LibGUI/Button.h>
|
||||
#include <LibGUI/EditingEngine.h>
|
||||
#include <LibGUI/FilePicker.h>
|
||||
#include <LibGUI/InputBox.h>
|
||||
#include <LibGUI/ItemListModel.h>
|
||||
|
@ -63,6 +64,7 @@
|
|||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/MenuBar.h>
|
||||
#include <LibGUI/MessageBox.h>
|
||||
#include <LibGUI/RegularEditingEngine.h>
|
||||
#include <LibGUI/Splitter.h>
|
||||
#include <LibGUI/StackWidget.h>
|
||||
#include <LibGUI/TabWidget.h>
|
||||
|
@ -72,6 +74,7 @@
|
|||
#include <LibGUI/ToolBar.h>
|
||||
#include <LibGUI/ToolBarContainer.h>
|
||||
#include <LibGUI/TreeView.h>
|
||||
#include <LibGUI/VimEditingEngine.h>
|
||||
#include <LibGUI/Widget.h>
|
||||
#include <LibGUI/Window.h>
|
||||
#include <LibGfx/FontDatabase.h>
|
||||
|
@ -234,6 +237,7 @@ void HackStudioWidget::open_file(const String& filename)
|
|||
current_editor().set_mode(GUI::TextEditor::Editable);
|
||||
current_editor().horizontal_scrollbar().set_value(new_project_file->horizontal_scroll_value());
|
||||
current_editor().vertical_scrollbar().set_value(new_project_file->vertical_scroll_value());
|
||||
current_editor().set_editing_engine(make<GUI::RegularEditingEngine>());
|
||||
|
||||
if (filename.ends_with(".frm")) {
|
||||
set_edit_mode(EditMode::Form);
|
||||
|
@ -854,6 +858,17 @@ void HackStudioWidget::create_edit_menubar(GUI::MenuBar& menubar)
|
|||
});
|
||||
line_wrapping_action->set_checked(current_editor().is_line_wrapping_enabled());
|
||||
edit_menu.add_action(line_wrapping_action);
|
||||
|
||||
edit_menu.add_separator();
|
||||
|
||||
auto vim_emulation_setting_action = GUI::Action::create_checkable("Vim emulation", { Mod_Ctrl | Mod_Shift | Mod_Alt, Key_V }, [this](auto& action) {
|
||||
if (action.is_checked())
|
||||
current_editor().set_editing_engine(make<GUI::VimEditingEngine>());
|
||||
else
|
||||
current_editor().set_editing_engine(make<GUI::RegularEditingEngine>());
|
||||
});
|
||||
vim_emulation_setting_action->set_checked(false);
|
||||
edit_menu.add_action(vim_emulation_setting_action);
|
||||
}
|
||||
|
||||
void HackStudioWidget::create_build_menubar(GUI::MenuBar& menubar)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue