global editor mode setting
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
This commit is contained in:
parent
27a26d53b1
commit
0d5becfadf
11 changed files with 93 additions and 78 deletions
|
@ -70,7 +70,7 @@ use ui::{PopoverMenuHandle, prelude::*};
|
|||
use util::markdown::MarkdownString;
|
||||
use util::{ResultExt, asset_str};
|
||||
use uuid::Uuid;
|
||||
use vim_mode_setting::VimModeSetting;
|
||||
use vim_mode_setting::{EditorMode, EditorModeSetting};
|
||||
use workspace::notifications::{
|
||||
NotificationId, SuppressEvent, dismiss_app_notification, show_app_notification,
|
||||
};
|
||||
|
@ -1287,21 +1287,15 @@ pub fn handle_keymap_file_changes(
|
|||
let (base_keymap_tx, mut base_keymap_rx) = mpsc::unbounded();
|
||||
let (keyboard_layout_tx, mut keyboard_layout_rx) = mpsc::unbounded();
|
||||
let mut old_base_keymap = *BaseKeymap::get_global(cx);
|
||||
let mut old_vim_enabled = VimModeSetting::get_global(cx).0;
|
||||
let mut old_helix_enabled = vim_mode_setting::HelixModeSetting::get_global(cx).0;
|
||||
let mut old_editor_mode = EditorModeSetting::get_global(cx).0;
|
||||
|
||||
cx.observe_global::<SettingsStore>(move |cx| {
|
||||
let new_base_keymap = *BaseKeymap::get_global(cx);
|
||||
let new_vim_enabled = VimModeSetting::get_global(cx).0;
|
||||
let new_helix_enabled = vim_mode_setting::HelixModeSetting::get_global(cx).0;
|
||||
let new_editor_mode = EditorModeSetting::get_global(cx).0;
|
||||
|
||||
if new_base_keymap != old_base_keymap
|
||||
|| new_vim_enabled != old_vim_enabled
|
||||
|| new_helix_enabled != old_helix_enabled
|
||||
{
|
||||
if new_base_keymap != old_base_keymap || new_editor_mode != old_editor_mode {
|
||||
old_base_keymap = new_base_keymap;
|
||||
old_vim_enabled = new_vim_enabled;
|
||||
old_helix_enabled = new_helix_enabled;
|
||||
old_editor_mode = new_editor_mode;
|
||||
|
||||
base_keymap_tx.unbounded_send(()).unwrap();
|
||||
}
|
||||
|
@ -1499,7 +1493,10 @@ pub fn load_default_keymap(cx: &mut App) {
|
|||
cx.bind_keys(KeymapFile::load_asset(asset_path, Some(KeybindSource::Base), cx).unwrap());
|
||||
}
|
||||
|
||||
if VimModeSetting::get_global(cx).0 || vim_mode_setting::HelixModeSetting::get_global(cx).0 {
|
||||
if matches!(
|
||||
EditorModeSetting::get_global(cx).0,
|
||||
EditorMode::Vim | EditorMode::Helix
|
||||
) {
|
||||
cx.bind_keys(
|
||||
KeymapFile::load_asset(VIM_KEYMAP_PATH, Some(KeybindSource::Vim), cx).unwrap(),
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue