@@ -177,18 +177,17 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
177177 } ) ,
178178 SettingsPageItem :: SectionHeader ( "Scoped Settings" ) ,
179179 SettingsPageItem :: SettingItem ( SettingItem {
180- // todo(settings_ui): Implement another setting item type that just shows an edit in settings.json
181180 files: USER ,
182181 title: "Preview Channel" ,
183182 description: "Which settings should be activated only in Preview build of Zed." ,
184183 field: Box :: new(
185184 SettingField {
186- json_path: Some ( "use_system_prompts " ) ,
185+ json_path: Some ( "preview_channel_settings " ) ,
187186 pick: |settings_content| {
188- settings_content . workspace . use_system_prompts . as_ref ( )
187+ Some ( settings_content )
189188 } ,
190- write: |settings_content , value | {
191- settings_content . workspace . use_system_prompts = value ;
189+ write: |_settings_content , _value | {
190+
192191 } ,
193192 }
194193 . unimplemented( ) ,
@@ -201,12 +200,11 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
201200 description: "Any number of settings profiles that are temporarily applied on top of your existing user settings." ,
202201 field: Box :: new(
203202 SettingField {
204- json_path: Some ( "" ) ,
203+ json_path: Some ( "settings_profiles " ) ,
205204 pick: |settings_content| {
206- settings_content . workspace . use_system_prompts . as_ref ( )
205+ Some ( settings_content )
207206 } ,
208- write: |settings_content, value| {
209- settings_content. workspace. use_system_prompts = value;
207+ write: |_settings_content, _value| {
210208 } ,
211209 }
212210 . unimplemented( ) ,
@@ -290,6 +288,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
290288 } ,
291289 write: |settings_content, value| {
292290 let Some ( value) = value else {
291+ settings_content. theme. theme = None ;
293292 return ;
294293 } ;
295294 let settings_value = settings_content. theme. theme. get_or_insert_with( || {
@@ -459,6 +458,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
459458 } ,
460459 write: |settings_content, value| {
461460 let Some ( value) = value else {
461+ settings_content. theme. icon_theme = None ;
462462 return ;
463463 } ;
464464 let settings_value = settings_content. theme. icon_theme. get_or_insert_with( || {
@@ -662,6 +662,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
662662 } ,
663663 write: |settings_content, value| {
664664 let Some ( value) = value else {
665+ settings_content. theme. buffer_line_height = None ;
665666 return ;
666667 } ;
667668 let settings_value = settings_content. theme. buffer_line_height. get_or_insert_with( || {
@@ -1123,6 +1124,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
11231124 } ,
11241125 write: |settings_content, value| {
11251126 let Some ( value) = value else {
1127+ settings_content. workspace. autosave = None ;
11261128 return ;
11271129 } ;
11281130 let settings_value = settings_content. workspace. autosave. get_or_insert_with( || {
@@ -1171,6 +1173,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
11711173 } ,
11721174 write: |settings_content, value| {
11731175 let Some ( value) = value else {
1176+ settings_content. workspace. autosave = None ;
11741177 return ;
11751178 } ;
11761179 match settings_content
@@ -2105,7 +2108,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
21052108 description: "A mapping from languages to files and file extensions that should be treated as that language." ,
21062109 field: Box :: new(
21072110 SettingField {
2108- json_path: Some ( "file_types " ) ,
2111+ json_path: Some ( "file_type_associations " ) ,
21092112 pick: |settings_content| {
21102113 settings_content. project. all_languages. file_types. as_ref( )
21112114 } ,
@@ -4449,6 +4452,9 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
44494452 } ,
44504453 write: |settings_content, value| {
44514454 let Some ( value) = value else {
4455+ if let Some ( terminal) = settings_content. terminal. as_mut( ) {
4456+ terminal. project. shell = None ;
4457+ }
44524458 return ;
44534459 } ;
44544460 let settings_value = settings_content
@@ -4500,7 +4506,7 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
45004506 title: "Program" ,
45014507 description: "The shell program to use." ,
45024508 field: Box :: new( SettingField {
4503- json_path: Some ( "terminal.shell.program " ) ,
4509+ json_path: Some ( "terminal.shell" ) ,
45044510 pick: |settings_content| {
45054511 match settings_content. terminal. as_ref( ) ?. project. shell. as_ref( ) {
45064512 Some ( settings:: Shell :: Program ( program) ) => Some ( program) ,
@@ -4632,6 +4638,9 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
46324638 } ,
46334639 write: |settings_content, value| {
46344640 let Some ( value) = value else {
4641+ if let Some ( terminal) = settings_content. terminal. as_mut( ) {
4642+ terminal. project. working_directory = None ;
4643+ }
46354644 return ;
46364645 } ;
46374646 let settings_value = settings_content
@@ -7092,7 +7101,7 @@ fn non_editor_language_settings_data() -> Vec<SettingsPageItem> {
70927101 description: "Default Prettier options, in the format as in package.json section for Prettier." ,
70937102 field: Box :: new(
70947103 SettingField {
7095- json_path: Some ( "languages.$(language).prettier" ) ,
7104+ json_path: Some ( "languages.$(language).prettier.options " ) ,
70967105 pick: |settings_content| {
70977106 language_settings_field( settings_content, |language| {
70987107 language. prettier. as_ref( ) ?. options. as_ref( )
0 commit comments