first pass of merging in warp (doesn't build)

This commit is contained in:
Ryan Ward
2026-07-01 16:08:58 -05:00
parent 2f64909469
commit 4770ac06b5
3662 changed files with 414574 additions and 89772 deletions
+26 -31
View File
@@ -1,28 +1,23 @@
use crate::keyboard::{remove_custom_keybinding, write_custom_keybinding, UserDefinedKeybinding};
use crate::settings_view::keybindings::{KeybindingChangedEvent, KeybindingChangedNotifier};
use std::borrow::Cow;
use std::cmp::Ordering;
use std::collections::{HashMap, HashSet};
use std::sync::Arc;
use enum_iterator::{all, Sequence};
use fuzzy_match::match_indices_case_insensitive;
use itertools::Itertools;
use lazy_static::lazy_static;
use galaxyui::keymap::{BindingId, IsBindingValid};
use galaxyui::platform::OperatingSystem;
use galaxyui::{
actions::StandardAction,
keymap::{
BindingDescription, BindingLens, CustomTag, DescriptionContext, EditableBindingLens,
Keystroke, Trigger,
},
Action,
};
use galaxyui::{AppContext, SingletonEntity};
use regex::Regex;
use std::borrow::Cow;
use std::{
cmp::Ordering,
collections::{HashMap, HashSet},
sync::Arc,
use galaxyui::actions::StandardAction;
use galaxyui::keymap::{
BindingDescription, BindingId, BindingLens, CustomTag, DescriptionContext, EditableBindingLens,
IsBindingValid, Keystroke, Trigger,
};
use galaxyui::platform::OperatingSystem;
use galaxyui::{Action, AppContext, SingletonEntity};
use crate::keyboard::{remove_custom_keybinding, write_custom_keybinding, UserDefinedKeybinding};
use crate::settings_view::keybindings::{KeybindingChangedEvent, KeybindingChangedNotifier};
pub const MAC_MENUS_CONTEXT: DescriptionContext = DescriptionContext::Custom("mac_menus");
@@ -406,9 +401,9 @@ pub fn custom_tag_to_keystroke(custom: CustomTag) -> Option<Keystroke> {
}
CustomAction::ToggleProjectExplorer => {
if OperatingSystem::get().is_mac() {
Keystroke::parse("ctrl-2").ok()
Keystroke::parse("ctrl-1").ok()
} else {
Keystroke::parse("ctrl-shift-2").ok()
Keystroke::parse("alt-1").ok()
}
}
CustomAction::OpenRepository => {
@@ -428,9 +423,9 @@ pub fn custom_tag_to_keystroke(custom: CustomTag) -> Option<Keystroke> {
}
CustomAction::ToggleConversationListView => {
if OperatingSystem::get().is_mac() {
Keystroke::parse("ctrl-1").ok()
Keystroke::parse("ctrl-2").ok()
} else {
Keystroke::parse("alt-1").ok()
Keystroke::parse("alt-2").ok()
}
}
CustomAction::NewTerminalTab
@@ -901,15 +896,8 @@ pub fn is_binding_pty_compliant(binding: BindingLens) -> IsBindingValid {
let Some(keystroke) = trigger_to_keystroke(trigger) else {
return IsBindingValid::Yes;
};
let is_binding_in_allowlist = (OperatingSystem::get().is_mac()
&& MAC_PTY_NON_COMPLIANT_ACTIONS.contains(binding.name))
|| (OperatingSystem::get().is_windows()
&& WINDOWS_PTY_NON_COMPLIANT_KEYSTROKES.contains(&keystroke))
|| PTY_NON_COMPLIANT_KEYSTROKES.contains(&keystroke);
if CONTROL_CHARACTER_KEY_REGEX.is_match(keystroke.normalized().as_str())
&& !is_binding_in_allowlist
&& !is_pty_non_compliant_binding_allowed(binding.name, &keystroke)
{
// The binding interferes with a control character so it is not valid.
IsBindingValid::No
@@ -918,6 +906,13 @@ pub fn is_binding_pty_compliant(binding: BindingLens) -> IsBindingValid {
}
}
fn is_pty_non_compliant_binding_allowed(binding_name: &str, keystroke: &Keystroke) -> bool {
(OperatingSystem::get().is_mac() && MAC_PTY_NON_COMPLIANT_ACTIONS.contains(binding_name))
|| (OperatingSystem::get().is_windows()
&& WINDOWS_PTY_NON_COMPLIANT_KEYSTROKES.contains(keystroke))
|| PTY_NON_COMPLIANT_KEYSTROKES.contains(keystroke)
}
/// Validates all that bindings are cross-platform by returning [`IsBindingValid::No`] if a `cmd-*`
/// binding is used on non-mac platforms.
pub fn is_binding_cross_platform(binding: BindingLens) -> IsBindingValid {