Introduce a new language-overrideable enable_language_server
setting
This commit is contained in:
parent
9d7476afc6
commit
55cc8631cc
1 changed files with 21 additions and 0 deletions
|
@ -28,6 +28,7 @@ pub struct Settings {
|
|||
pub soft_wrap: SoftWrap,
|
||||
pub preferred_line_length: u32,
|
||||
pub format_on_save: bool,
|
||||
pub enable_language_server: bool,
|
||||
pub language_overrides: HashMap<Arc<str>, LanguageOverride>,
|
||||
pub theme: Arc<Theme>,
|
||||
}
|
||||
|
@ -38,6 +39,7 @@ pub struct LanguageOverride {
|
|||
pub soft_wrap: Option<SoftWrap>,
|
||||
pub preferred_line_length: Option<u32>,
|
||||
pub format_on_save: Option<bool>,
|
||||
pub enable_language_server: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, Deserialize, PartialEq, Eq, JsonSchema)]
|
||||
|
@ -60,6 +62,8 @@ pub struct SettingsFileContent {
|
|||
pub vim_mode: Option<bool>,
|
||||
#[serde(default)]
|
||||
pub format_on_save: Option<bool>,
|
||||
#[serde(default)]
|
||||
pub enable_language_server: Option<bool>,
|
||||
#[serde(flatten)]
|
||||
pub editor: LanguageOverride,
|
||||
#[serde(default)]
|
||||
|
@ -84,6 +88,7 @@ impl Settings {
|
|||
preferred_line_length: 80,
|
||||
language_overrides: Default::default(),
|
||||
format_on_save: true,
|
||||
enable_language_server: true,
|
||||
projects_online_by_default: true,
|
||||
theme,
|
||||
})
|
||||
|
@ -127,6 +132,13 @@ impl Settings {
|
|||
.unwrap_or(self.format_on_save)
|
||||
}
|
||||
|
||||
pub fn enable_language_server(&self, language: Option<&str>) -> bool {
|
||||
language
|
||||
.and_then(|language| self.language_overrides.get(language))
|
||||
.and_then(|settings| settings.enable_language_server)
|
||||
.unwrap_or(self.enable_language_server)
|
||||
}
|
||||
|
||||
#[cfg(any(test, feature = "test-support"))]
|
||||
pub fn test(cx: &gpui::AppContext) -> Settings {
|
||||
Settings {
|
||||
|
@ -138,6 +150,7 @@ impl Settings {
|
|||
soft_wrap: SoftWrap::None,
|
||||
preferred_line_length: 80,
|
||||
format_on_save: true,
|
||||
enable_language_server: true,
|
||||
language_overrides: Default::default(),
|
||||
projects_online_by_default: true,
|
||||
theme: gpui::fonts::with_font_cache(cx.font_cache().clone(), || Default::default()),
|
||||
|
@ -177,6 +190,10 @@ impl Settings {
|
|||
merge(&mut self.default_buffer_font_size, data.buffer_font_size);
|
||||
merge(&mut self.vim_mode, data.vim_mode);
|
||||
merge(&mut self.format_on_save, data.format_on_save);
|
||||
merge(
|
||||
&mut self.enable_language_server,
|
||||
data.enable_language_server,
|
||||
);
|
||||
merge(&mut self.soft_wrap, data.editor.soft_wrap);
|
||||
merge(&mut self.tab_size, data.editor.tab_size);
|
||||
merge(
|
||||
|
@ -193,6 +210,10 @@ impl Settings {
|
|||
merge_option(&mut target.tab_size, settings.tab_size);
|
||||
merge_option(&mut target.soft_wrap, settings.soft_wrap);
|
||||
merge_option(&mut target.format_on_save, settings.format_on_save);
|
||||
merge_option(
|
||||
&mut target.enable_language_server,
|
||||
settings.enable_language_server,
|
||||
);
|
||||
merge_option(
|
||||
&mut target.preferred_line_length,
|
||||
settings.preferred_line_length,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue