Search
This commit is contained in:
@@ -14,9 +14,7 @@ use gpui::{
|
||||
use http_client::BlockedHttpClient;
|
||||
use language::{
|
||||
FakeLspAdapter, Language, LanguageConfig, LanguageMatcher, LanguageRegistry,
|
||||
language_settings::{
|
||||
Formatter, FormatterList, PrettierSettings, SelectedFormatter, language_settings,
|
||||
},
|
||||
language_settings::{Formatter, FormatterList, SelectedFormatter, language_settings},
|
||||
tree_sitter_typescript,
|
||||
};
|
||||
use node_runtime::NodeRuntime;
|
||||
|
||||
@@ -176,6 +176,7 @@ pub struct SearchSettings {
|
||||
pub include_ignored: bool,
|
||||
pub regex: bool,
|
||||
}
|
||||
|
||||
impl EditorSettings {
|
||||
pub fn jupyter_enabled(cx: &App) -> bool {
|
||||
EditorSettings::get_global(cx).jupyter.enabled
|
||||
|
||||
@@ -1480,7 +1480,7 @@ mod tests {
|
||||
use gpui::{Hsla, TestAppContext, UpdateGlobal, VisualTestContext};
|
||||
use language::{Buffer, Point};
|
||||
use project::Project;
|
||||
use settings::SettingsStore;
|
||||
use settings::{SearchSettingsContent, SettingsStore};
|
||||
use smol::stream::StreamExt as _;
|
||||
use unindent::Unindent as _;
|
||||
|
||||
@@ -2867,7 +2867,13 @@ mod tests {
|
||||
cx.update(|cx| {
|
||||
SettingsStore::update_global(cx, |store, cx| {
|
||||
store.update_user_settings(cx, |settings| {
|
||||
settings.editor.search = Some(search_settings);
|
||||
settings.editor.search = Some(SearchSettingsContent {
|
||||
button: Some(search_settings.button),
|
||||
whole_word: Some(search_settings.whole_word),
|
||||
case_sensitive: Some(search_settings.case_sensitive),
|
||||
include_ignored: Some(search_settings.include_ignored),
|
||||
regex: Some(search_settings.regex),
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -295,57 +295,8 @@ impl SettingsUiTree {
|
||||
// so that we can keep none/skip and still test in CI that all settings have
|
||||
#[cfg(feature = "test-support")]
|
||||
pub fn all_paths(&self, cx: &App) -> Vec<Vec<SharedString>> {
|
||||
fn all_paths_rec(
|
||||
tree: &[UiEntry],
|
||||
paths: &mut Vec<Vec<SharedString>>,
|
||||
current_path: &mut Vec<SharedString>,
|
||||
idx: usize,
|
||||
cx: &App,
|
||||
) {
|
||||
let child = &tree[idx];
|
||||
let mut pushed_path = false;
|
||||
if let Some(path) = child.path.as_ref() {
|
||||
current_path.push(path.clone());
|
||||
paths.push(current_path.clone());
|
||||
pushed_path = true;
|
||||
}
|
||||
// todo(settings_ui): handle dynamic nodes here
|
||||
let selected_descendant_index = child
|
||||
.dynamic_render
|
||||
.as_ref()
|
||||
.map(|dynamic_render| {
|
||||
read_settings_value_from_path(
|
||||
SettingsStore::global(cx).raw_default_settings(),
|
||||
¤t_path,
|
||||
)
|
||||
.map(|value| (dynamic_render.determine_option)(value, cx))
|
||||
})
|
||||
.and_then(|selected_descendant_index| {
|
||||
selected_descendant_index.map(|index| child.nth_descendant_index(tree, index))
|
||||
});
|
||||
|
||||
if let Some(selected_descendant_index) = selected_descendant_index {
|
||||
// just silently fail if we didn't find a setting value for the path
|
||||
if let Some(descendant_index) = selected_descendant_index {
|
||||
all_paths_rec(tree, paths, current_path, descendant_index, cx);
|
||||
}
|
||||
} else if let Some(desc_idx) = child.first_descendant_index() {
|
||||
let mut desc_idx = Some(desc_idx);
|
||||
while let Some(descendant_index) = desc_idx {
|
||||
all_paths_rec(&tree, paths, current_path, descendant_index, cx);
|
||||
desc_idx = tree[descendant_index].next_sibling;
|
||||
}
|
||||
}
|
||||
if pushed_path {
|
||||
current_path.pop();
|
||||
}
|
||||
}
|
||||
|
||||
let mut paths = Vec::new();
|
||||
for &index in &self.root_entry_indices {
|
||||
all_paths_rec(&self.entries, &mut paths, &mut Vec::new(), index, cx);
|
||||
}
|
||||
paths
|
||||
// todo(settings_ui) this needs to be implemented not in terms of JSON anymore
|
||||
Vec::default()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1724,8 +1724,8 @@ mod test {
|
||||
async fn test_f_and_t_smartcase(cx: &mut gpui::TestAppContext) {
|
||||
let mut cx = VimTestContext::new(cx, true).await;
|
||||
cx.update_global(|store: &mut SettingsStore, cx| {
|
||||
store.update_user_settings::<VimSettings>(cx, |s| {
|
||||
s.use_smartcase_find = Some(true);
|
||||
store.update_user_settings(cx, |s| {
|
||||
s.vim.get_or_insert_default().use_smartcase_find = Some(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1891,8 +1891,12 @@ mod test {
|
||||
|
||||
cx.update(|_, cx| {
|
||||
SettingsStore::update_global(cx, |settings, cx| {
|
||||
settings.update_user_settings::<AllLanguageSettings>(cx, |settings| {
|
||||
settings.defaults.preferred_line_length = Some(5);
|
||||
settings.update_user_settings(cx, |settings| {
|
||||
settings
|
||||
.project
|
||||
.all_languages
|
||||
.defaults
|
||||
.preferred_line_length = Some(5);
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user