Remove optional path argument when getting settings

Max Brunsfeld created

Change summary

crates/auto_update/src/auto_update.rs            |  6 ++--
crates/client/src/client.rs                      |  5 +--
crates/client/src/telemetry.rs                   |  2 
crates/collab_ui/src/sharing_status_indicator.rs |  2 
crates/copilot/src/copilot.rs                    |  3 -
crates/copilot_button/src/copilot_button.rs      | 13 +++++------
crates/diagnostics/src/diagnostics.rs            |  2 
crates/editor/src/blink_manager.rs               |  2 
crates/editor/src/display_map.rs                 |  2 
crates/editor/src/editor.rs                      | 16 +++++++-------
crates/editor/src/element.rs                     | 19 ++++++++---------
crates/editor/src/hover_popover.rs               |  2 
crates/editor/src/multi_buffer.rs                |  4 +-
crates/journal/src/journal.rs                    |  2 
crates/language/src/buffer.rs                    |  4 +-
crates/language/src/language_settings.rs         | 15 +++----------
crates/project/src/project.rs                    |  9 +++----
crates/project/src/terminals.rs                  |  2 
crates/settings/src/settings_file.rs             | 13 ++---------
crates/terminal/src/terminal.rs                  |  2 
crates/terminal_view/src/terminal_element.rs     |  4 +-
crates/terminal_view/src/terminal_view.rs        | 12 +++++-----
crates/theme/src/theme.rs                        |  4 --
crates/theme_testbench/src/theme_testbench.rs    |  2 
crates/vim/src/vim.rs                            |  4 +-
crates/welcome/src/base_keymap_picker.rs         |  2 
crates/welcome/src/welcome.rs                    |  2 
crates/workspace/src/dock.rs                     |  5 +--
crates/workspace/src/item.rs                     |  4 +-
crates/workspace/src/pane.rs                     |  2 
crates/workspace/src/pane_group.rs               |  3 -
crates/workspace/src/workspace.rs                |  4 +-
crates/zed/src/languages/yaml.rs                 |  2 
crates/zed/src/main.rs                           |  6 ++--
crates/zed/src/zed.rs                            | 16 ++++----------
35 files changed, 84 insertions(+), 113 deletions(-)

Detailed changes

crates/auto_update/src/auto_update.rs 🔗

@@ -83,12 +83,12 @@ pub fn init(http_client: Arc<dyn HttpClient>, server_url: String, cx: &mut AppCo
         let auto_updater = cx.add_model(|cx| {
             let updater = AutoUpdater::new(version, http_client, server_url);
 
-            let mut update_subscription = settings::get_setting::<AutoUpdateSetting>(None, cx)
+            let mut update_subscription = settings::get::<AutoUpdateSetting>(cx)
                 .0
                 .then(|| updater.start_polling(cx));
 
             cx.observe_global::<SettingsStore, _>(move |updater, cx| {
-                if settings::get_setting::<AutoUpdateSetting>(None, cx).0 {
+                if settings::get::<AutoUpdateSetting>(cx).0 {
                     if update_subscription.is_none() {
                         update_subscription = Some(updater.start_polling(cx))
                     }
@@ -281,7 +281,7 @@ impl AutoUpdater {
             let release_channel = cx
                 .has_global::<ReleaseChannel>()
                 .then(|| cx.global::<ReleaseChannel>().display_name());
-            let telemetry = settings::get_setting::<TelemetrySettings>(None, cx).metrics;
+            let telemetry = settings::get::<TelemetrySettings>(cx).metrics;
 
             (installation_id, release_channel, telemetry)
         });

crates/client/src/client.rs 🔗

@@ -781,7 +781,7 @@ impl Client {
                     self.telemetry().report_mixpanel_event(
                         "read credentials from keychain",
                         Default::default(),
-                        *settings::get_setting::<TelemetrySettings>(None, cx),
+                        *settings::get::<TelemetrySettings>(cx),
                     );
                 });
             }
@@ -1075,8 +1075,7 @@ impl Client {
         let telemetry = self.telemetry.clone();
         let http = self.http.clone();
 
-        let telemetry_settings =
-            cx.read(|cx| *settings::get_setting::<TelemetrySettings>(None, cx));
+        let telemetry_settings = cx.read(|cx| *settings::get::<TelemetrySettings>(cx));
 
         executor.clone().spawn(async move {
             // Generate a pair of asymmetric encryption keys. The public key will be used by the

crates/client/src/telemetry.rs 🔗

@@ -247,7 +247,7 @@ impl Telemetry {
         is_staff: bool,
         cx: &AppContext,
     ) {
-        if !settings::get_setting::<TelemetrySettings>(None, cx).metrics {
+        if !settings::get::<TelemetrySettings>(cx).metrics {
             return;
         }
 

crates/collab_ui/src/sharing_status_indicator.rs 🔗

@@ -16,7 +16,7 @@ pub fn init(cx: &mut AppContext) {
         if let Some(room) = call.read(cx).room() {
             if room.read(cx).is_screen_sharing() {
                 if status_indicator.is_none()
-                    && settings::get_setting::<WorkspaceSettings>(None, cx).show_call_status_icon
+                    && settings::get::<WorkspaceSettings>(cx).show_call_status_icon
                 {
                     status_indicator = Some(cx.add_status_bar_item(|_| SharingStatusIndicator));
                 }

crates/copilot/src/copilot.rs 🔗

@@ -318,7 +318,7 @@ impl Copilot {
     fn enable_or_disable_copilot(&mut self, cx: &mut ModelContext<Copilot>) {
         let http = self.http.clone();
         let node_runtime = self.node_runtime.clone();
-        if all_language_settings(None, cx).copilot_enabled(None, None) {
+        if all_language_settings(cx).copilot_enabled(None, None) {
             if matches!(self.server, CopilotServer::Disabled) {
                 let start_task = cx
                     .spawn({
@@ -786,7 +786,6 @@ impl Copilot {
         let uri = registered_buffer.uri.clone();
         let position = position.to_point_utf16(buffer);
         let settings = language_settings(
-            None,
             buffer.language_at(position).map(|l| l.name()).as_deref(),
             cx,
         );

crates/copilot_button/src/copilot_button.rs 🔗

@@ -41,7 +41,7 @@ impl View for CopilotButton {
     }
 
     fn render(&mut self, cx: &mut ViewContext<Self>) -> AnyElement<Self> {
-        let all_language_settings = &all_language_settings(None, cx);
+        let all_language_settings = &all_language_settings(cx);
         if !all_language_settings.copilot.feature_enabled {
             return Empty::new().into_any();
         }
@@ -198,7 +198,7 @@ impl CopilotButton {
         if let Some(language) = self.language.clone() {
             let fs = fs.clone();
             let language_enabled =
-                language_settings::language_settings(None, Some(language.as_ref()), cx)
+                language_settings::language_settings(Some(language.as_ref()), cx)
                     .show_copilot_suggestions;
             menu_options.push(ContextMenuItem::handler(
                 format!(
@@ -210,7 +210,7 @@ impl CopilotButton {
             ));
         }
 
-        let settings = settings::get_setting::<AllLanguageSettings>(None, cx);
+        let settings = settings::get::<AllLanguageSettings>(cx);
 
         if let Some(path) = self.path.as_ref() {
             let path_enabled = settings.copilot_enabled_for_path(path);
@@ -282,7 +282,7 @@ impl CopilotButton {
         let path = snapshot.file_at(suggestion_anchor).map(|file| file.path());
 
         self.editor_enabled = Some(
-            all_language_settings(None, cx)
+            all_language_settings(cx)
                 .copilot_enabled(language_name.as_deref(), path.map(|p| p.as_ref())),
         );
         self.language = language_name;
@@ -364,15 +364,14 @@ async fn configure_disabled_globs(
 }
 
 fn toggle_copilot_globally(fs: Arc<dyn Fs>, cx: &mut AppContext) {
-    let show_copilot_suggestions = all_language_settings(None, cx).copilot_enabled(None, None);
+    let show_copilot_suggestions = all_language_settings(cx).copilot_enabled(None, None);
     update_settings_file::<AllLanguageSettings>(fs, cx, move |file| {
         file.defaults.show_copilot_suggestions = Some((!show_copilot_suggestions).into())
     });
 }
 
 fn toggle_copilot_for_language(language: Arc<str>, fs: Arc<dyn Fs>, cx: &mut AppContext) {
-    let show_copilot_suggestions =
-        all_language_settings(None, cx).copilot_enabled(Some(&language), None);
+    let show_copilot_suggestions = all_language_settings(cx).copilot_enabled(Some(&language), None);
     update_settings_file::<AllLanguageSettings>(fs, cx, move |file| {
         file.languages
             .entry(language)

crates/diagnostics/src/diagnostics.rs 🔗

@@ -679,7 +679,7 @@ impl Item for ProjectDiagnosticsEditor {
 fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock {
     let (message, highlights) = highlight_diagnostic_message(Vec::new(), &diagnostic.message);
     Arc::new(move |cx| {
-        let settings = settings::get_setting::<ThemeSettings>(None, cx);
+        let settings = settings::get::<ThemeSettings>(cx);
         let theme = &settings.theme.editor;
         let style = theme.diagnostic_header.clone();
         let font_size = (style.text_scale_factor
@@ -64,7 +64,7 @@ impl BlinkManager {
     }
 
     fn blink_cursors(&mut self, epoch: usize, cx: &mut ModelContext<Self>) {
-        if settings::get_setting::<EditorSettings>(None, cx).cursor_blink {
+        if settings::get::<EditorSettings>(cx).cursor_blink {
             if epoch == self.blink_epoch && self.enabled && !self.blinking_paused {
                 self.visible = !self.visible;
                 cx.notify();

crates/editor/src/display_map.rs 🔗

@@ -277,7 +277,7 @@ impl DisplayMap {
             .as_singleton()
             .and_then(|buffer| buffer.read(cx).language())
             .map(|language| language.name());
-        language_settings(None, language_name.as_deref(), cx).tab_size
+        language_settings(language_name.as_deref(), cx).tab_size
     }
 
     #[cfg(test)]

crates/editor/src/editor.rs 🔗

@@ -1246,7 +1246,7 @@ impl Editor {
     ) -> Self {
         let editor_view_id = cx.view_id();
         let display_map = cx.add_model(|cx| {
-            let settings = settings::get_setting::<ThemeSettings>(None, cx);
+            let settings = settings::get::<ThemeSettings>(cx);
             let style = build_style(settings, get_field_editor_theme.as_deref(), None, cx);
             DisplayMap::new(
                 buffer.clone(),
@@ -1427,7 +1427,7 @@ impl Editor {
 
     fn style(&self, cx: &AppContext) -> EditorStyle {
         build_style(
-            settings::get_setting::<ThemeSettings>(None, cx),
+            settings::get::<ThemeSettings>(cx),
             self.get_field_editor_theme.as_deref(),
             self.override_text_style.as_deref(),
             cx,
@@ -2385,7 +2385,7 @@ impl Editor {
     }
 
     fn trigger_completion_on_input(&mut self, text: &str, cx: &mut ViewContext<Self>) {
-        if !settings::get_setting::<EditorSettings>(None, cx).show_completions_on_input {
+        if !settings::get::<EditorSettings>(cx).show_completions_on_input {
             return;
         }
 
@@ -3156,7 +3156,7 @@ impl Editor {
         let language_name = snapshot
             .language_at(location)
             .map(|language| language.name());
-        let settings = all_language_settings(None, cx);
+        let settings = all_language_settings(cx);
         settings.copilot_enabled(language_name.as_deref(), path)
     }
 
@@ -6902,7 +6902,7 @@ impl Editor {
             .map(|a| a.to_string());
 
         let telemetry = project.read(cx).client().telemetry().clone();
-        let telemetry_settings = *settings::get_setting::<TelemetrySettings>(None, cx);
+        let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
 
         let event = ClickhouseEvent::Copilot {
             suggestion_id,
@@ -6937,8 +6937,8 @@ impl Editor {
             .untyped_user_settings()
             .get("vim_mode")
             == Some(&serde_json::Value::Bool(true));
-        let telemetry_settings = *settings::get_setting::<TelemetrySettings>(None, cx);
-        let copilot_enabled = all_language_settings(None, cx).copilot_enabled(None, None);
+        let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
+        let copilot_enabled = all_language_settings(cx).copilot_enabled(None, None);
         let copilot_enabled_for_language = self
             .buffer
             .read(cx)
@@ -7616,7 +7616,7 @@ pub fn diagnostic_block_renderer(diagnostic: Diagnostic, is_valid: bool) -> Rend
     }
 
     Arc::new(move |cx: &mut BlockContext| {
-        let settings = settings::get_setting::<ThemeSettings>(None, cx);
+        let settings = settings::get::<ThemeSettings>(cx);
         let theme = &settings.theme.editor;
         let style = diagnostic_style(diagnostic.severity, is_valid, theme);
         let font_size = (style.text_scale_factor

crates/editor/src/element.rs 🔗

@@ -550,7 +550,7 @@ impl EditorElement {
         let scroll_top = scroll_position.y() * line_height;
 
         let show_gutter = matches!(
-            settings::get_setting::<WorkspaceSettings>(None, cx)
+            settings::get::<WorkspaceSettings>(cx)
                 .git
                 .git_gutter
                 .unwrap_or_default(),
@@ -2060,15 +2060,14 @@ impl Element<Editor> for EditorElement {
             ));
         }
 
-        let show_scrollbars =
-            match settings::get_setting::<EditorSettings>(None, cx).show_scrollbars {
-                ShowScrollbars::Auto => {
-                    snapshot.has_scrollbar_info() || editor.scroll_manager.scrollbars_visible()
-                }
-                ShowScrollbars::System => editor.scroll_manager.scrollbars_visible(),
-                ShowScrollbars::Always => true,
-                ShowScrollbars::Never => false,
-            };
+        let show_scrollbars = match settings::get::<EditorSettings>(cx).show_scrollbars {
+            ShowScrollbars::Auto => {
+                snapshot.has_scrollbar_info() || editor.scroll_manager.scrollbars_visible()
+            }
+            ShowScrollbars::System => editor.scroll_manager.scrollbars_visible(),
+            ShowScrollbars::Always => true,
+            ShowScrollbars::Never => false,
+        };
 
         let include_root = editor
             .project

crates/editor/src/hover_popover.rs 🔗

@@ -37,7 +37,7 @@ pub fn hover(editor: &mut Editor, _: &Hover, cx: &mut ViewContext<Editor>) {
 /// 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, point: Option<DisplayPoint>, cx: &mut ViewContext<Editor>) {
-    if settings::get_setting::<EditorSettings>(None, cx).hover_popover_enabled {
+    if settings::get::<EditorSettings>(cx).hover_popover_enabled {
         if let Some(point) = point {
             show_hover(editor, point, false, cx);
         } else {

crates/editor/src/multi_buffer.rs 🔗

@@ -1380,7 +1380,7 @@ impl MultiBuffer {
         cx: &'a AppContext,
     ) -> &'a LanguageSettings {
         let language = self.language_at(point, cx);
-        language_settings(None, language.map(|l| l.name()).as_deref(), cx)
+        language_settings(language.map(|l| l.name()).as_deref(), cx)
     }
 
     pub fn for_each_buffer(&self, mut f: impl FnMut(&ModelHandle<Buffer>)) {
@@ -2782,7 +2782,7 @@ impl MultiBufferSnapshot {
     ) -> &'a LanguageSettings {
         self.point_to_buffer_offset(point)
             .map(|(buffer, offset)| buffer.settings_at(offset, cx))
-            .unwrap_or_else(|| language_settings(None, None, cx))
+            .unwrap_or_else(|| language_settings(None, cx))
     }
 
     pub fn language_scope_at<'a, T: ToOffset>(&'a self, point: T) -> Option<LanguageScope> {

crates/journal/src/journal.rs 🔗

@@ -53,7 +53,7 @@ pub fn init(app_state: Arc<AppState>, cx: &mut AppContext) {
 }
 
 pub fn new_journal_entry(app_state: Arc<AppState>, cx: &mut AppContext) {
-    let settings = settings::get_setting::<JournalSettings>(None, cx);
+    let settings = settings::get::<JournalSettings>(cx);
     let journal_dir = match journal_dir(settings.path.as_ref().unwrap()) {
         Some(journal_dir) => journal_dir,
         None => {

crates/language/src/buffer.rs 🔗

@@ -1827,7 +1827,7 @@ impl BufferSnapshot {
 
     pub fn language_indent_size_at<T: ToOffset>(&self, position: T, cx: &AppContext) -> IndentSize {
         let language_name = self.language_at(position).map(|language| language.name());
-        let settings = language_settings(None, language_name.as_deref(), cx);
+        let settings = language_settings(language_name.as_deref(), cx);
         if settings.hard_tabs {
             IndentSize::tab()
         } else {
@@ -2152,7 +2152,7 @@ impl BufferSnapshot {
         cx: &'a AppContext,
     ) -> &'a LanguageSettings {
         let language = self.language_at(position);
-        language_settings(None, language.map(|l| l.name()).as_deref(), cx)
+        language_settings(language.map(|l| l.name()).as_deref(), cx)
     }
 
     pub fn language_scope_at<D: ToOffset>(&self, position: D) -> Option<LanguageScope> {

crates/language/src/language_settings.rs 🔗

@@ -12,19 +12,12 @@ pub fn init(cx: &mut AppContext) {
     settings::register_setting::<AllLanguageSettings>(cx);
 }
 
-pub fn language_settings<'a>(
-    path: Option<&Path>,
-    language: Option<&str>,
-    cx: &'a AppContext,
-) -> &'a LanguageSettings {
-    settings::get_setting::<AllLanguageSettings>(path, cx).language(language)
+pub fn language_settings<'a>(language: Option<&str>, cx: &'a AppContext) -> &'a LanguageSettings {
+    settings::get::<AllLanguageSettings>(cx).language(language)
 }
 
-pub fn all_language_settings<'a>(
-    path: Option<&Path>,
-    cx: &'a AppContext,
-) -> &'a AllLanguageSettings {
-    settings::get_setting::<AllLanguageSettings>(path, cx)
+pub fn all_language_settings<'a>(cx: &'a AppContext) -> &'a AllLanguageSettings {
+    settings::get::<AllLanguageSettings>(cx)
 }
 
 #[derive(Debug, Clone)]

crates/project/src/project.rs 🔗

@@ -631,7 +631,7 @@ impl Project {
     }
 
     fn on_settings_changed(&mut self, cx: &mut ModelContext<Self>) {
-        let settings = all_language_settings(None, cx);
+        let settings = all_language_settings(cx);
 
         let mut language_servers_to_start = Vec::new();
         for buffer in self.opened_buffers.values() {
@@ -2208,7 +2208,7 @@ impl Project {
         language: Arc<Language>,
         cx: &mut ModelContext<Self>,
     ) {
-        if !language_settings(None, Some(&language.name()), cx).enable_language_server {
+        if !language_settings(Some(&language.name()), cx).enable_language_server {
             return;
         }
 
@@ -2229,7 +2229,7 @@ impl Project {
                 None => continue,
             };
 
-            let lsp = settings::get_setting::<ProjectSettings>(None, cx)
+            let lsp = settings::get::<ProjectSettings>(cx)
                 .lsp
                 .get(&adapter.name.0);
             let override_options = lsp.map(|s| s.initialization_options.clone()).flatten();
@@ -3259,8 +3259,7 @@ impl Project {
                 for (buffer, buffer_abs_path, language_server) in &buffers_with_paths_and_servers {
                     let settings = buffer.read_with(&cx, |buffer, cx| {
                         let language_name = buffer.language().map(|language| language.name());
-                        language_settings(buffer_abs_path.as_deref(), language_name.as_deref(), cx)
-                            .clone()
+                        language_settings(language_name.as_deref(), cx).clone()
                     });
 
                     let remove_trailing_whitespace = settings.remove_trailing_whitespace_on_save;

crates/project/src/terminals.rs 🔗

@@ -19,7 +19,7 @@ impl Project {
                 "creating terminals as a guest is not supported yet"
             ));
         } else {
-            let settings = settings::get_setting::<TerminalSettings>(None, cx);
+            let settings = settings::get::<TerminalSettings>(cx);
 
             let terminal = TerminalBuilder::new(
                 working_directory.clone(),

crates/settings/src/settings_file.rs 🔗

@@ -4,14 +4,7 @@ use assets::Assets;
 use fs::Fs;
 use futures::{channel::mpsc, StreamExt};
 use gpui::{executor::Background, AppContext, AssetSource};
-use std::{
-    borrow::Cow,
-    io::ErrorKind,
-    path::{Path, PathBuf},
-    str,
-    sync::Arc,
-    time::Duration,
-};
+use std::{borrow::Cow, io::ErrorKind, path::PathBuf, str, sync::Arc, time::Duration};
 use util::{paths, ResultExt};
 
 pub fn register_setting<T: Setting>(cx: &mut AppContext) {
@@ -20,8 +13,8 @@ pub fn register_setting<T: Setting>(cx: &mut AppContext) {
     });
 }
 
-pub fn get_setting<'a, T: Setting>(path: Option<&Path>, cx: &'a AppContext) -> &'a T {
-    cx.global::<SettingsStore>().get(path)
+pub fn get<'a, T: Setting>(cx: &'a AppContext) -> &'a T {
+    cx.global::<SettingsStore>().get(None)
 }
 
 pub fn default_settings() -> Cow<'static, str> {

crates/terminal/src/terminal.rs 🔗

@@ -1149,7 +1149,7 @@ impl Terminal {
     }
 
     pub fn mouse_up(&mut self, e: &MouseUp, origin: Vector2F, cx: &mut ModelContext<Self>) {
-        let setting = settings::get_setting::<TerminalSettings>(None, cx);
+        let setting = settings::get::<TerminalSettings>(cx);
 
         let position = e.position.sub(origin);
         if self.mouse_mode(e.shift) {

crates/terminal_view/src/terminal_element.rs 🔗

@@ -522,8 +522,8 @@ impl Element<TerminalView> for TerminalElement {
         view: &mut TerminalView,
         cx: &mut LayoutContext<TerminalView>,
     ) -> (gpui::geometry::vector::Vector2F, Self::LayoutState) {
-        let settings = settings::get_setting::<ThemeSettings>(None, cx);
-        let terminal_settings = settings::get_setting::<TerminalSettings>(None, cx);
+        let settings = settings::get::<ThemeSettings>(cx);
+        let terminal_settings = settings::get::<TerminalSettings>(cx);
 
         //Setup layout information
         let terminal_theme = settings.theme.terminal.clone(); //TODO: Try to minimize this clone.

crates/terminal_view/src/terminal_view.rs 🔗

@@ -103,7 +103,7 @@ impl TerminalView {
         _: &workspace::NewTerminal,
         cx: &mut ViewContext<Workspace>,
     ) {
-        let strategy = settings::get_setting::<TerminalSettings>(None, cx);
+        let strategy = settings::get::<TerminalSettings>(cx);
         let working_directory =
             get_working_directory(workspace, cx, strategy.working_directory.clone());
 
@@ -217,7 +217,7 @@ impl TerminalView {
             self.terminal.update(cx, |term, cx| {
                 term.try_keystroke(
                     &Keystroke::parse("ctrl-cmd-space").unwrap(),
-                    settings::get_setting::<TerminalSettings>(None, cx).option_as_meta,
+                    settings::get::<TerminalSettings>(cx).option_as_meta,
                 )
             });
         }
@@ -243,7 +243,7 @@ impl TerminalView {
             return true;
         }
 
-        match settings::get_setting::<TerminalSettings>(None, cx).blinking {
+        match settings::get::<TerminalSettings>(cx).blinking {
             //If the user requested to never blink, don't blink it.
             TerminalBlink::Off => true,
             //If the terminal is controlling it, check terminal mode
@@ -336,7 +336,7 @@ impl TerminalView {
             self.terminal.update(cx, |term, cx| {
                 term.try_keystroke(
                     &keystroke,
-                    settings::get_setting::<TerminalSettings>(None, cx).option_as_meta,
+                    settings::get::<TerminalSettings>(cx).option_as_meta,
                 );
             });
         }
@@ -399,7 +399,7 @@ impl View for TerminalView {
         self.terminal.update(cx, |term, cx| {
             term.try_keystroke(
                 &event.keystroke,
-                settings::get_setting::<TerminalSettings>(None, cx).option_as_meta,
+                settings::get::<TerminalSettings>(cx).option_as_meta,
             )
         })
     }
@@ -601,7 +601,7 @@ impl Item for TerminalView {
                 .flatten()
                 .or_else(|| {
                     cx.read(|cx| {
-                        let strategy = settings::get_setting::<TerminalSettings>(None, cx)
+                        let strategy = settings::get::<TerminalSettings>(cx)
                             .working_directory
                             .clone();
                         workspace

crates/theme/src/theme.rs 🔗

@@ -17,9 +17,7 @@ pub use theme_registry::ThemeRegistry;
 pub use theme_settings::ThemeSettings;
 
 pub fn current(cx: &AppContext) -> Arc<Theme> {
-    settings::get_setting::<ThemeSettings>(None, cx)
-        .theme
-        .clone()
+    settings::get::<ThemeSettings>(cx).theme.clone()
 }
 
 pub fn init(source: impl AssetSource, cx: &mut AppContext) {

crates/theme_testbench/src/theme_testbench.rs 🔗

@@ -219,7 +219,7 @@ impl ThemeTestbench {
     }
 
     fn render_label(text: String, style: &Style, cx: &mut ViewContext<Self>) -> Label {
-        let settings = settings::get_setting::<ThemeSettings>(None, cx);
+        let settings = settings::get::<ThemeSettings>(cx);
         let font_cache = cx.font_cache();
         let family_id = settings.buffer_font_family;
         let font_size = settings::font_size_for_setting(settings.buffer_font_size, cx);

crates/vim/src/vim.rs 🔗

@@ -95,11 +95,11 @@ pub fn init(cx: &mut AppContext) {
         filter.filtered_namespaces.insert("vim");
     });
     cx.update_default_global(|vim: &mut Vim, cx: &mut AppContext| {
-        vim.set_enabled(settings::get_setting::<VimModeSetting>(None, cx).0, cx)
+        vim.set_enabled(settings::get::<VimModeSetting>(cx).0, cx)
     });
     cx.observe_global::<SettingsStore, _>(|cx| {
         cx.update_default_global(|vim: &mut Vim, cx: &mut AppContext| {
-            vim.set_enabled(settings::get_setting::<VimModeSetting>(None, cx).0, cx)
+            vim.set_enabled(settings::get::<VimModeSetting>(cx).0, cx)
         });
     })
     .detach();

crates/welcome/src/base_keymap_picker.rs 🔗

@@ -40,7 +40,7 @@ pub struct BaseKeymapSelectorDelegate {
 
 impl BaseKeymapSelectorDelegate {
     fn new(fs: Arc<dyn Fs>, cx: &mut ViewContext<BaseKeymapSelector>) -> Self {
-        let base = settings::get_setting::<BaseKeymap>(None, cx);
+        let base = settings::get::<BaseKeymap>(cx);
         let selected_index = BaseKeymap::OPTIONS
             .iter()
             .position(|(_, value)| value == base)

crates/welcome/src/welcome.rs 🔗

@@ -64,7 +64,7 @@ impl View for WelcomePage {
         let theme = theme::current(cx);
         let width = theme.welcome.page_width;
 
-        let telemetry_settings = *settings::get_setting::<TelemetrySettings>(None, cx);
+        let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
 
         enum Metrics {}
         enum Diagnostics {}

crates/workspace/src/dock.rs 🔗

@@ -172,9 +172,8 @@ impl Dock {
         background_actions: BackgroundActions,
         cx: &mut ViewContext<Workspace>,
     ) -> Self {
-        let position = DockPosition::Hidden(
-            settings::get_setting::<WorkspaceSettings>(None, cx).default_dock_anchor,
-        );
+        let position =
+            DockPosition::Hidden(settings::get::<WorkspaceSettings>(cx).default_dock_anchor);
         let workspace = cx.weak_handle();
         let pane =
             cx.add_view(|cx| Pane::new(workspace, Some(position.anchor()), background_actions, cx));

crates/workspace/src/item.rs 🔗

@@ -450,7 +450,7 @@ impl<T: Item> ItemHandle for ViewHandle<T> {
                             }
 
                             ItemEvent::Edit => {
-                                let settings = settings::get_setting::<WorkspaceSettings>(None, cx);
+                                let settings = settings::get::<WorkspaceSettings>(cx);
                                 let debounce_delay = settings.git.gutter_debounce;
 
                                 if let AutosaveSetting::AfterDelay { milliseconds } =
@@ -501,7 +501,7 @@ impl<T: Item> ItemHandle for ViewHandle<T> {
 
             cx.observe_focus(self, move |workspace, item, focused, cx| {
                 if !focused
-                    && settings::get_setting::<WorkspaceSettings>(None, cx).autosave
+                    && settings::get::<WorkspaceSettings>(cx).autosave
                         == AutosaveSetting::OnFocusChange
                 {
                     Pane::autosave_item(&item, workspace.project.clone(), cx)

crates/workspace/src/pane.rs 🔗

@@ -1024,7 +1024,7 @@ impl Pane {
         } else if is_dirty && (can_save || is_singleton) {
             let will_autosave = cx.read(|cx| {
                 matches!(
-                    settings::get_setting::<WorkspaceSettings>(None, cx).autosave,
+                    settings::get::<WorkspaceSettings>(cx).autosave,
                     AutosaveSetting::OnFocusChange | AutosaveSetting::OnWindowChange
                 ) && Self::can_autosave_item(&*item, cx)
             });

crates/workspace/src/pane_group.rs 🔗

@@ -379,8 +379,7 @@ impl PaneAxis {
             .with_children(self.members.iter().enumerate().map(|(ix, member)| {
                 let mut flex = 1.0;
                 if member.contains(active_pane) {
-                    flex = settings::get_setting::<WorkspaceSettings>(None, cx)
-                        .active_pane_magnification;
+                    flex = settings::get::<WorkspaceSettings>(cx).active_pane_magnification;
                 }
 
                 let mut member = member.render(

crates/workspace/src/workspace.rs 🔗

@@ -2359,7 +2359,7 @@ impl Workspace {
                         item.workspace_deactivated(cx);
                     }
                     if matches!(
-                        settings::get_setting::<WorkspaceSettings>(None, cx).autosave,
+                        settings::get::<WorkspaceSettings>(cx).autosave,
                         AutosaveSetting::OnWindowChange | AutosaveSetting::OnFocusChange
                     ) {
                         for item in pane.items() {
@@ -3140,7 +3140,7 @@ pub fn join_remote_project(
 }
 
 pub fn restart(_: &Restart, cx: &mut AppContext) {
-    let should_confirm = settings::get_setting::<WorkspaceSettings>(None, cx).confirm_quit;
+    let should_confirm = settings::get::<WorkspaceSettings>(cx).confirm_quit;
     cx.spawn(|mut cx| async move {
         let mut workspaces = cx
             .window_ids()

crates/zed/src/languages/yaml.rs 🔗

@@ -107,7 +107,7 @@ impl LspAdapter for YamlLspAdapter {
                     "keyOrdering": false
                 },
                 "[yaml]": {
-                    "editor.tabSize": language_settings(None, Some("YAML"), cx).tab_size,
+                    "editor.tabSize": language_settings(Some("YAML"), cx).tab_size,
                 }
             }))
             .boxed(),

crates/zed/src/main.rs 🔗

@@ -180,7 +180,7 @@ fn main() {
         client.telemetry().report_mixpanel_event(
             "start app",
             Default::default(),
-            *settings::get_setting::<TelemetrySettings>(None, cx),
+            *settings::get::<TelemetrySettings>(cx),
         );
 
         let app_state = Arc::new(AppState {
@@ -441,7 +441,7 @@ fn init_panic_hook(app_version: String) {
 }
 
 fn upload_previous_panics(http: Arc<dyn HttpClient>, cx: &mut AppContext) {
-    let telemetry_settings = *settings::get_setting::<TelemetrySettings>(None, cx);
+    let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
 
     cx.background()
         .spawn({
@@ -800,7 +800,7 @@ pub fn dock_default_item_factory(
     workspace: &mut Workspace,
     cx: &mut ViewContext<Workspace>,
 ) -> Option<Box<dyn ItemHandle>> {
-    let strategy = settings::get_setting::<TerminalSettings>(None, cx)
+    let strategy = settings::get::<TerminalSettings>(cx)
         .working_directory
         .clone();
     let working_directory = get_working_directory(workspace, cx, strategy);

crates/zed/src/zed.rs 🔗

@@ -368,7 +368,7 @@ pub fn build_window_options(
 }
 
 fn quit(_: &Quit, cx: &mut gpui::AppContext) {
-    let should_confirm = settings::get_setting::<WorkspaceSettings>(None, cx).confirm_quit;
+    let should_confirm = settings::get::<WorkspaceSettings>(cx).confirm_quit;
     cx.spawn(|mut cx| async move {
         let mut workspaces = cx
             .window_ids()
@@ -484,7 +484,7 @@ pub fn load_default_keymap(cx: &mut AppContext) {
         KeymapFileContent::load_asset(path, cx).unwrap();
     }
 
-    if let Some(asset_path) = settings::get_setting::<BaseKeymap>(None, cx).asset_path() {
+    if let Some(asset_path) = settings::get::<BaseKeymap>(cx).asset_path() {
         KeymapFileContent::load_asset(asset_path, cx).unwrap();
     }
 }
@@ -503,12 +503,11 @@ pub fn handle_keymap_file_changes(
                     keymap_content.clone().add_to_cx(cx).log_err();
                 });
 
-                let mut old_base_keymap =
-                    cx.read(|cx| *settings::get_setting::<BaseKeymap>(None, cx));
+                let mut old_base_keymap = cx.read(|cx| *settings::get::<BaseKeymap>(cx));
                 drop(settings_subscription);
                 settings_subscription = Some(cx.update(|cx| {
                     cx.observe_global::<SettingsStore, _>(move |cx| {
-                        let new_base_keymap = *settings::get_setting::<BaseKeymap>(None, cx);
+                        let new_base_keymap = *settings::get::<BaseKeymap>(cx);
                         if new_base_keymap != old_base_keymap {
                             old_base_keymap = new_base_keymap.clone();
 
@@ -2047,12 +2046,7 @@ mod tests {
         for theme_name in themes.list(false).map(|meta| meta.name) {
             let theme = themes.get(&theme_name).unwrap();
             assert_eq!(theme.meta.name, theme_name);
-            if theme.meta.name
-                == settings::get_setting::<ThemeSettings>(None, cx)
-                    .theme
-                    .meta
-                    .name
-            {
+            if theme.meta.name == settings::get::<ThemeSettings>(cx).theme.meta.name {
                 has_default_theme = true;
             }
         }