1mod bookmark_picker;
2
3use command_palette_hooks::CommandPaletteFilter;
4use feature_flags::FeatureFlagAppExt as _;
5use gpui::App;
6use jj::JujutsuStore;
7use workspace::Workspace;
8
9pub fn init(cx: &mut App) {
10 JujutsuStore::init_global(cx);
11
12 cx.observe_new(|workspace: &mut Workspace, _window, _cx| {
13 bookmark_picker::register(workspace);
14 })
15 .detach();
16
17 feature_gate_jj_ui_actions(cx);
18}
19
20fn feature_gate_jj_ui_actions(cx: &mut App) {
21 const JJ_ACTION_NAMESPACE: &str = "jj";
22
23 CommandPaletteFilter::update_global(cx, |filter, _cx| {
24 filter.hide_namespace(JJ_ACTION_NAMESPACE);
25 });
26
27 cx.observe_flag::<feature_flags::JjUiFeatureFlag, _>({
28 move |is_enabled, cx| {
29 CommandPaletteFilter::update_global(cx, |filter, _cx| {
30 if is_enabled {
31 filter.show_namespace(JJ_ACTION_NAMESPACE);
32 } else {
33 filter.hide_namespace(JJ_ACTION_NAMESPACE);
34 }
35 });
36 }
37 })
38 .detach();
39}