1use anyhow::Result;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4use settings::{Settings, SettingsKey, SettingsSources, SettingsUi};
5
6#[derive(Deserialize, Debug, Clone, Copy, PartialEq)]
7pub struct FileFinderSettings {
8 pub file_icons: bool,
9 pub modal_max_width: Option<FileFinderWidth>,
10 pub skip_focus_for_active_in_search: bool,
11 pub include_ignored: Option<bool>,
12}
13
14impl Settings for FileFinderSettings {
15 type FileContent = FileFinderSettingsContent;
16
17 fn load(sources: SettingsSources<Self::FileContent>, _: &mut gpui::App) -> Result<Self> {
18 sources.json_merge()
19 }
20
21 fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {}
22}
23
24#[derive(Debug, PartialEq, Eq, Clone, Copy, Default, Serialize, Deserialize, JsonSchema)]
25#[serde(rename_all = "lowercase")]
26pub enum FileFinderWidth {
27 #[default]
28 Small,
29 Medium,
30 Large,
31 XLarge,
32 Full,
33}