From e1a05d451fc22977205663fcdd40c4a51b40c579 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 27 May 2022 13:02:52 -0700 Subject: [PATCH] Add "Reset Zoom" action and application menu item --- assets/keymaps/default.json | 1 + crates/settings/src/settings.rs | 4 ++++ crates/zed/src/menus.rs | 4 ++++ crates/zed/src/zed.rs | 7 +++++++ 4 files changed, 16 insertions(+) diff --git a/assets/keymaps/default.json b/assets/keymaps/default.json index 1049e216f3d6452641da021f23e6b7efc9084e43..831c076b5c5c36c89dc0e03a37b77b2171e39590 100644 --- a/assets/keymaps/default.json +++ b/assets/keymaps/default.json @@ -20,6 +20,7 @@ "cmd-shift-S": "workspace::SaveAs", "cmd-=": "zed::IncreaseBufferFontSize", "cmd--": "zed::DecreaseBufferFontSize", + "cmd-0": "zed::ResetBufferFontSize", "cmd-,": "zed::OpenSettings", "cmd-q": "zed::Quit", "cmd-n": "workspace::NewFile", diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index 9b5ed124412d697166b52217488b0f67e6263bf4..58c70d32c1dcebc37cee699f31f1b45f5fd6351a 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -21,6 +21,7 @@ pub use keymap_file::{keymap_file_json_schema, KeymapFileContent}; pub struct Settings { pub buffer_font_family: FamilyId, pub buffer_font_size: f32, + pub default_buffer_font_size: f32, pub vim_mode: bool, pub tab_size: u32, pub soft_wrap: SoftWrap, @@ -73,6 +74,7 @@ impl Settings { Ok(Self { buffer_font_family: font_cache.load_family(&[buffer_font_family])?, buffer_font_size: 15., + default_buffer_font_size: 15., vim_mode: false, tab_size: 4, soft_wrap: SoftWrap::None, @@ -126,6 +128,7 @@ impl Settings { Settings { buffer_font_family: cx.font_cache().load_family(&["Monaco"]).unwrap(), buffer_font_size: 14., + default_buffer_font_size: 14., vim_mode: false, tab_size: 4, soft_wrap: SoftWrap::None, @@ -162,6 +165,7 @@ impl Settings { } merge(&mut self.buffer_font_size, data.buffer_font_size); + merge(&mut self.default_buffer_font_size, data.buffer_font_size); merge(&mut self.vim_mode, data.vim_mode); merge(&mut self.format_on_save, data.format_on_save); merge(&mut self.soft_wrap, data.editor.soft_wrap); diff --git a/crates/zed/src/menus.rs b/crates/zed/src/menus.rs index e90b716d02af56883167de353375ec29c57ffcdb..b02e7204fbb2f6f7aab3bae9d676cfffd4a717dd 100644 --- a/crates/zed/src/menus.rs +++ b/crates/zed/src/menus.rs @@ -164,6 +164,10 @@ pub fn menus() -> Vec> { name: "Zoom Out", action: Box::new(super::DecreaseBufferFontSize), }, + MenuItem::Action { + name: "Reset Zoom", + action: Box::new(super::ResetBufferFontSize), + }, MenuItem::Separator, MenuItem::Action { name: "Project Browser", diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index c2f6c60ea673a48b90e1d38c65648ca489615d86..aeba7551ebc40dfeb9ce8ab46fecc5952d7d1c33 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -43,6 +43,7 @@ actions!( OpenKeymap, IncreaseBufferFontSize, DecreaseBufferFontSize, + ResetBufferFontSize, InstallCommandLineInterface, ] ); @@ -72,6 +73,12 @@ pub fn init(app_state: &Arc, cx: &mut gpui::MutableAppContext) { cx.refresh_windows(); }); }); + cx.add_global_action(move |_: &ResetBufferFontSize, cx| { + cx.update_global::(|settings, cx| { + settings.buffer_font_size = settings.default_buffer_font_size; + cx.refresh_windows(); + }); + }); cx.add_global_action(move |_: &InstallCommandLineInterface, cx| { cx.spawn(|cx| async move { install_cli(&cx).await.context("error creating CLI symlink") }) .detach_and_log_err(cx);