Add the ability for extensions to provide language settings (#10296)
This PR adds the ability for extensions to provide certain language settings via the language `config.toml`. These settings are then merged in with the rest of the settings when the language is loaded from the extension. The language settings that are available are: - `tab_size` - `hard_tabs` - `soft_wrap` Additionally, for bundled languages we moved these settings out of the `settings/default.json` and into their respective `config.toml`s . For languages currently provided by extensions, we are leaving the values in the `settings/default.json` temporarily until all released versions of Zed are able to load these settings from the extension. --- Along the way we ended up refactoring the `Settings::load` method slightly, introducing a new `SettingsSources` struct to better convey where the settings are being loaded from. This makes it easier to load settings from specific locations/sets of locations in an explicit way. Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
This commit is contained in:
parent
4a3032c5e5
commit
7c5bc3c26f
42 changed files with 349 additions and 338 deletions
|
@ -607,6 +607,7 @@ pub fn handle_keymap_file_changes(
|
|||
cx.observe_global::<SettingsStore>(move |cx| {
|
||||
let new_base_keymap = *BaseKeymap::get_global(cx);
|
||||
let new_vim_enabled = VimModeSetting::get_global(cx).0;
|
||||
|
||||
if new_base_keymap != old_base_keymap || new_vim_enabled != old_vim_enabled {
|
||||
old_base_keymap = new_base_keymap;
|
||||
old_vim_enabled = new_vim_enabled;
|
||||
|
@ -3062,6 +3063,7 @@ mod tests {
|
|||
let mut app_state = AppState::test(cx);
|
||||
|
||||
let state = Arc::get_mut(&mut app_state).unwrap();
|
||||
env_logger::try_init().ok();
|
||||
|
||||
state.build_window_options = build_window_options;
|
||||
theme::init(theme::LoadThemes::JustBase, cx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue