diff --git a/crates/editor/src/hover_popover.rs b/crates/editor/src/hover_popover.rs index 31323d01d2..7ae9e01b09 100644 --- a/crates/editor/src/hover_popover.rs +++ b/crates/editor/src/hover_popover.rs @@ -7,6 +7,7 @@ use gpui::{ }; use language::Bias; use project::{HoverBlock, Project}; +use settings::Settings; use std::{ops::Range, time::Duration}; use util::TryFutureExt; @@ -40,10 +41,12 @@ pub fn hover(editor: &mut Editor, _: &Hover, cx: &mut ViewContext) { /// The internal hover action dispatches between `show_hover` or `hide_hover` /// depending on whether a point to hover over is provided. pub fn hover_at(editor: &mut Editor, action: &HoverAt, cx: &mut ViewContext) { - if let Some(point) = action.point { - show_hover(editor, point, false, cx); - } else { - hide_hover(editor, cx); + if cx.global::().hover_popover_enabled { + if let Some(point) = action.point { + show_hover(editor, point, false, cx); + } else { + hide_hover(editor, cx); + } } } diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index 75961bf2a1..1e84e5bec6 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -23,6 +23,7 @@ pub struct Settings { pub buffer_font_family: FamilyId, pub buffer_font_size: f32, pub default_buffer_font_size: f32, + pub hover_popover_enabled: bool, pub vim_mode: bool, pub language_settings: LanguageSettings, pub language_defaults: HashMap, LanguageSettings>, @@ -57,6 +58,8 @@ pub struct SettingsFileContent { #[serde(default)] pub buffer_font_size: Option, #[serde(default)] + pub hover_popover_enabled: Option, + #[serde(default)] pub vim_mode: Option, #[serde(default)] pub format_on_save: Option, @@ -80,6 +83,7 @@ impl Settings { buffer_font_family: font_cache.load_family(&[buffer_font_family])?, buffer_font_size: 15., default_buffer_font_size: 15., + hover_popover_enabled: true, vim_mode: false, language_settings: Default::default(), language_defaults: Default::default(), @@ -151,6 +155,7 @@ impl Settings { buffer_font_family: cx.font_cache().load_family(&["Monaco"]).unwrap(), buffer_font_size: 14., default_buffer_font_size: 14., + hover_popover_enabled: true, vim_mode: false, language_settings: Default::default(), language_defaults: Default::default(), @@ -191,6 +196,7 @@ impl Settings { ); merge(&mut self.buffer_font_size, data.buffer_font_size); merge(&mut self.default_buffer_font_size, data.buffer_font_size); + merge(&mut self.hover_popover_enabled, data.hover_popover_enabled); merge(&mut self.vim_mode, data.vim_mode); merge_option( &mut self.language_settings.format_on_save,