add hover popover setting

This commit is contained in:
Keith Simmons 2022-06-27 16:21:22 -07:00
parent a477733bcb
commit 1eb8351440
2 changed files with 13 additions and 4 deletions

View file

@ -7,6 +7,7 @@ use gpui::{
}; };
use language::Bias; use language::Bias;
use project::{HoverBlock, Project}; use project::{HoverBlock, Project};
use settings::Settings;
use std::{ops::Range, time::Duration}; use std::{ops::Range, time::Duration};
use util::TryFutureExt; use util::TryFutureExt;
@ -40,10 +41,12 @@ pub fn hover(editor: &mut Editor, _: &Hover, cx: &mut ViewContext<Editor>) {
/// The internal hover action dispatches between `show_hover` or `hide_hover` /// The internal hover action dispatches between `show_hover` or `hide_hover`
/// depending on whether a point to hover over is provided. /// depending on whether a point to hover over is provided.
pub fn hover_at(editor: &mut Editor, action: &HoverAt, cx: &mut ViewContext<Editor>) { pub fn hover_at(editor: &mut Editor, action: &HoverAt, cx: &mut ViewContext<Editor>) {
if let Some(point) = action.point { if cx.global::<Settings>().hover_popover_enabled {
show_hover(editor, point, false, cx); if let Some(point) = action.point {
} else { show_hover(editor, point, false, cx);
hide_hover(editor, cx); } else {
hide_hover(editor, cx);
}
} }
} }

View file

@ -23,6 +23,7 @@ pub struct Settings {
pub buffer_font_family: FamilyId, pub buffer_font_family: FamilyId,
pub buffer_font_size: f32, pub buffer_font_size: f32,
pub default_buffer_font_size: f32, pub default_buffer_font_size: f32,
pub hover_popover_enabled: bool,
pub vim_mode: bool, pub vim_mode: bool,
pub language_settings: LanguageSettings, pub language_settings: LanguageSettings,
pub language_defaults: HashMap<Arc<str>, LanguageSettings>, pub language_defaults: HashMap<Arc<str>, LanguageSettings>,
@ -57,6 +58,8 @@ pub struct SettingsFileContent {
#[serde(default)] #[serde(default)]
pub buffer_font_size: Option<f32>, pub buffer_font_size: Option<f32>,
#[serde(default)] #[serde(default)]
pub hover_popover_enabled: Option<bool>,
#[serde(default)]
pub vim_mode: Option<bool>, pub vim_mode: Option<bool>,
#[serde(default)] #[serde(default)]
pub format_on_save: Option<bool>, pub format_on_save: Option<bool>,
@ -80,6 +83,7 @@ impl Settings {
buffer_font_family: font_cache.load_family(&[buffer_font_family])?, buffer_font_family: font_cache.load_family(&[buffer_font_family])?,
buffer_font_size: 15., buffer_font_size: 15.,
default_buffer_font_size: 15., default_buffer_font_size: 15.,
hover_popover_enabled: true,
vim_mode: false, vim_mode: false,
language_settings: Default::default(), language_settings: Default::default(),
language_defaults: Default::default(), language_defaults: Default::default(),
@ -151,6 +155,7 @@ impl Settings {
buffer_font_family: cx.font_cache().load_family(&["Monaco"]).unwrap(), buffer_font_family: cx.font_cache().load_family(&["Monaco"]).unwrap(),
buffer_font_size: 14., buffer_font_size: 14.,
default_buffer_font_size: 14., default_buffer_font_size: 14.,
hover_popover_enabled: true,
vim_mode: false, vim_mode: false,
language_settings: Default::default(), language_settings: Default::default(),
language_defaults: 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.buffer_font_size, data.buffer_font_size);
merge(&mut self.default_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(&mut self.vim_mode, data.vim_mode);
merge_option( merge_option(
&mut self.language_settings.format_on_save, &mut self.language_settings.format_on_save,