Load project and buffer search key bindings from JSON file

This commit is contained in:
Max Brunsfeld 2022-04-10 11:30:08 -07:00
parent 3636c9ec25
commit 1e2eeaa22a
3 changed files with 37 additions and 35 deletions

View File

@ -5,9 +5,9 @@ use crate::{
use collections::HashMap; use collections::HashMap;
use editor::{display_map::ToDisplayPoint, Anchor, Autoscroll, Bias, Editor}; use editor::{display_map::ToDisplayPoint, Anchor, Autoscroll, Bias, Editor};
use gpui::{ use gpui::{
actions, elements::*, impl_actions, impl_internal_actions, keymap::Binding, actions, elements::*, impl_actions, impl_internal_actions, platform::CursorStyle, AppContext,
platform::CursorStyle, AppContext, Entity, MutableAppContext, RenderContext, Subscription, Entity, MutableAppContext, RenderContext, Subscription, Task, View, ViewContext, ViewHandle,
Task, View, ViewContext, ViewHandle, WeakViewHandle, WeakViewHandle,
}; };
use language::OffsetRangeExt; use language::OffsetRangeExt;
use project::search::SearchQuery; use project::search::SearchQuery;
@ -33,24 +33,6 @@ pub enum Event {
} }
pub fn init(cx: &mut MutableAppContext) { pub fn init(cx: &mut MutableAppContext) {
cx.add_bindings([
Binding::new(
"cmd-f",
Deploy { focus: true },
Some("Editor && mode == full"),
),
Binding::new(
"cmd-e",
Deploy { focus: false },
Some("Editor && mode == full"),
),
Binding::new("escape", Dismiss, Some("BufferSearchBar")),
Binding::new("cmd-f", FocusEditor, Some("BufferSearchBar")),
Binding::new("enter", SelectNextMatch, Some("BufferSearchBar")),
Binding::new("shift-enter", SelectPrevMatch, Some("BufferSearchBar")),
Binding::new("cmd-g", SelectNextMatch, Some("Pane")),
Binding::new("cmd-shift-G", SelectPrevMatch, Some("Pane")),
]);
cx.add_action(BufferSearchBar::deploy); cx.add_action(BufferSearchBar::deploy);
cx.add_action(BufferSearchBar::dismiss); cx.add_action(BufferSearchBar::dismiss);
cx.add_action(BufferSearchBar::focus_editor); cx.add_action(BufferSearchBar::focus_editor);

View File

@ -5,9 +5,9 @@ use crate::{
use collections::HashMap; use collections::HashMap;
use editor::{Anchor, Autoscroll, Editor, MultiBuffer, SelectAll}; use editor::{Anchor, Autoscroll, Editor, MultiBuffer, SelectAll};
use gpui::{ use gpui::{
actions, elements::*, keymap::Binding, platform::CursorStyle, AppContext, ElementBox, Entity, actions, elements::*, platform::CursorStyle, AppContext, ElementBox, Entity, ModelContext,
ModelContext, ModelHandle, MutableAppContext, RenderContext, Subscription, Task, View, ModelHandle, MutableAppContext, RenderContext, Subscription, Task, View, ViewContext,
ViewContext, ViewHandle, WeakModelHandle, WeakViewHandle, ViewHandle, WeakModelHandle, WeakViewHandle,
}; };
use project::{search::SearchQuery, Project}; use project::{search::SearchQuery, Project};
use settings::Settings; use settings::Settings;
@ -28,15 +28,6 @@ struct ActiveSearches(HashMap<WeakModelHandle<Project>, WeakViewHandle<ProjectSe
pub fn init(cx: &mut MutableAppContext) { pub fn init(cx: &mut MutableAppContext) {
cx.set_global(ActiveSearches::default()); cx.set_global(ActiveSearches::default());
cx.add_bindings([
Binding::new("cmd-shift-F", ToggleFocus, Some("Pane")),
Binding::new("cmd-f", ToggleFocus, Some("Pane")),
Binding::new("cmd-shift-F", Deploy, Some("Workspace")),
Binding::new("enter", Search, Some("ProjectSearchBar")),
Binding::new("cmd-enter", SearchInNew, Some("ProjectSearchBar")),
Binding::new("cmd-g", SelectNextMatch, Some("Pane")),
Binding::new("cmd-shift-G", SelectPrevMatch, Some("Pane")),
]);
cx.add_action(ProjectSearchView::deploy); cx.add_action(ProjectSearchView::deploy);
cx.add_action(ProjectSearchBar::search); cx.add_action(ProjectSearchBar::search);
cx.add_action(ProjectSearchBar::search_in_new); cx.add_action(ProjectSearchBar::search_in_new);

View File

@ -40,7 +40,24 @@
"cmd-k right": [ "cmd-k right": [
"pane::Split", "pane::Split",
"Right" "Right"
] ],
"cmd-shift-F": "project_search::ToggleFocus",
"cmd-f": "project_search::ToggleFocus",
"cmd-g": "search::SelectNextMatch",
"cmd-shift-G": "search::SelectPrevMatch"
},
"Workspace": {
"cmd-shift-F": "project_search::Deploy"
},
"ProjectSearchBar": {
"enter": "project_search::Search",
"cmd-enter": "project_search::SearchInNew"
},
"BufferSearchBar": {
"escape": "buffer_search::Dismiss",
"cmd-f": "buffer_search::FocusEditor",
"enter": "search::SelectNextMatch",
"shift-enter": "search::SelectPrevMatch"
}, },
"Editor": { "Editor": {
"escape": "editor::Cancel", "escape": "editor::Cancel",
@ -188,7 +205,19 @@
"enter": "editor::ConfirmCodeAction" "enter": "editor::ConfirmCodeAction"
}, },
"Editor && mode == full": { "Editor && mode == full": {
"enter": "editor::Newline" "enter": "editor::Newline",
"cmd-f": [
"buffer_search::Deploy",
{
"focus": true
}
],
"cmd-e": [
"buffer_search::Deploy",
{
"focus": false
}
]
}, },
"Editor && mode == auto_height": { "Editor && mode == auto_height": {
"alt-enter": [ "alt-enter": [