Settings refactor (#38367)
Co-Authored-By: Ben K <ben@zed.dev> Co-Authored-By: Anthony <anthony@zed.dev> Co-Authored-By: Mikayla <mikayla@zed.dev> Release Notes: - settings: Major internal changes to settings. The primary user-facing effect is that some settings which did not make sense in project settings files are no-longer read from there. (For example the inline blame settings) --------- Co-authored-by: Ben Kunkle <ben@zed.dev> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Anthony <anthony@zed.dev>
This commit is contained in:
co-authored by
Ben Kunkle
Mikayla Maki
Anthony
parent
0a9023bce0
commit
fcdab160f9
@@ -30,10 +30,9 @@ use gpui::{
|
||||
|
||||
use lsp::{LanguageServerId, NumberOrString};
|
||||
use parking_lot::Mutex;
|
||||
use schemars::JsonSchema;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
use settings::{SettingsUi, WorktreeId};
|
||||
use settings::WorktreeId;
|
||||
use smallvec::SmallVec;
|
||||
use smol::future::yield_now;
|
||||
use std::{
|
||||
@@ -174,10 +173,7 @@ pub enum IndentKind {
|
||||
}
|
||||
|
||||
/// The shape of a selection cursor.
|
||||
#[derive(
|
||||
Copy, Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq, JsonSchema, SettingsUi,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
|
||||
pub enum CursorShape {
|
||||
/// A vertical bar
|
||||
#[default]
|
||||
@@ -190,6 +186,17 @@ pub enum CursorShape {
|
||||
Hollow,
|
||||
}
|
||||
|
||||
impl From<settings::CursorShape> for CursorShape {
|
||||
fn from(shape: settings::CursorShape) -> Self {
|
||||
match shape {
|
||||
settings::CursorShape::Bar => CursorShape::Bar,
|
||||
settings::CursorShape::Block => CursorShape::Block,
|
||||
settings::CursorShape::Underline => CursorShape::Underline,
|
||||
settings::CursorShape::Hollow => CursorShape::Hollow,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
struct SelectionSet {
|
||||
line_mode: bool,
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
use super::*;
|
||||
use crate::Buffer;
|
||||
use crate::language_settings::{
|
||||
AllLanguageSettings, AllLanguageSettingsContent, LanguageSettingsContent,
|
||||
};
|
||||
use clock::ReplicaId;
|
||||
use collections::BTreeMap;
|
||||
use futures::FutureExt as _;
|
||||
@@ -13,6 +10,7 @@ use proto::deserialize_operation;
|
||||
use rand::prelude::*;
|
||||
use regex::RegexBuilder;
|
||||
use settings::SettingsStore;
|
||||
use settings::{AllLanguageSettingsContent, LanguageSettingsContent};
|
||||
use std::collections::BTreeSet;
|
||||
use std::{
|
||||
env,
|
||||
@@ -3849,7 +3847,7 @@ fn init_settings(cx: &mut App, f: fn(&mut AllLanguageSettingsContent)) {
|
||||
cx.set_global(settings_store);
|
||||
crate::init(cx);
|
||||
cx.update_global::<SettingsStore, _>(|settings, cx| {
|
||||
settings.update_user_settings::<AllLanguageSettings>(cx, f);
|
||||
settings.update_user_settings(cx, |content| f(&mut content.project.all_languages));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ mod toolchain;
|
||||
#[cfg(test)]
|
||||
pub mod buffer_tests;
|
||||
|
||||
pub use crate::language_settings::EditPredictionsMode;
|
||||
use crate::language_settings::SoftWrap;
|
||||
pub use crate::language_settings::{EditPredictionsMode, IndentGuideSettings};
|
||||
use anyhow::{Context as _, Result};
|
||||
use async_trait::async_trait;
|
||||
use collections::{HashMap, HashSet, IndexSet};
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
use crate::{
|
||||
CachedLspAdapter, File, Language, LanguageConfig, LanguageId, LanguageMatcher,
|
||||
LanguageServerName, LspAdapter, ManifestName, PLAIN_TEXT, ToolchainLister,
|
||||
language_settings::{
|
||||
AllLanguageSettingsContent, LanguageSettingsContent, all_language_settings,
|
||||
},
|
||||
task_context::ContextProvider,
|
||||
with_parser,
|
||||
language_settings::all_language_settings, task_context::ContextProvider, with_parser,
|
||||
};
|
||||
use anyhow::{Context as _, Result, anyhow};
|
||||
use collections::{FxHashMap, HashMap, HashSet, hash_map};
|
||||
use settings::{AllLanguageSettingsContent, LanguageSettingsContent};
|
||||
|
||||
use futures::{
|
||||
Future,
|
||||
@@ -1175,7 +1172,7 @@ impl LanguageRegistryState {
|
||||
language.set_theme(theme.syntax());
|
||||
}
|
||||
self.language_settings.languages.0.insert(
|
||||
language.name(),
|
||||
language.name().0,
|
||||
LanguageSettingsContent {
|
||||
tab_size: language.config.tab_size,
|
||||
hard_tabs: language.config.hard_tabs,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user