From 08d7344a02ce366b75568d760286fd4c3bc54c99 Mon Sep 17 00:00:00 2001 From: Penwing Date: Tue, 23 Jan 2024 22:09:56 +0100 Subject: [PATCH] added time debug --- Cargo.lock | 2 +- Cargo.toml | 6 +-- README.md | 6 ++- assets/source.png | Bin 0 -> 71680 bytes src/calcifer.rs | 19 +++++++++ src/main.rs | 100 ++++++++++++++++++++++++++++++---------------- 6 files changed, 94 insertions(+), 39 deletions(-) create mode 100644 assets/source.png diff --git a/Cargo.lock b/Cargo.lock index 595dd28..c778163 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -570,7 +570,7 @@ dependencies = [ [[package]] name = "calcifer" -version = "1.0.2" +version = "1.0.3" dependencies = [ "eframe", "egui_extras", diff --git a/Cargo.toml b/Cargo.toml index 9d8be87..a7fa7fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "calcifer" -version = "1.0.2" +version = "1.0.3" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -8,8 +8,8 @@ edition = "2021" [dependencies] eframe = "0.25.0" env_logger = { version = "0.10.1", default-features = false, features = [ - "auto-color", - "humantime", + "auto-color", + "humantime", ] } rfd = "0.12.1" egui_extras = "0.25.0" diff --git a/README.md b/README.md index 0d51acd..dcfb453 100644 --- a/README.md +++ b/README.md @@ -19,4 +19,8 @@ Added find and replace function Added multi line tab and shift+tab Added Ctrl+E : comment multiline Fixed Ctr+Z (was already in library, tried to make my own, and then found the better one) -Added indent recognition (when there is a line break, the indentaion level is kept) +Added indent recognition (when there is a line break, the indentation level is kept) + + +# 1.0.3 : +Added Ctrl+T : turn 4 spaces into tab across the whole document \ No newline at end of file diff --git a/assets/source.png b/assets/source.png new file mode 100644 index 0000000000000000000000000000000000000000..79438e6e82ff96e99bc159196fd55052c6a28b88 GIT binary patch literal 71680 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 h7s75&79=^z$sRXXFJhxh2 = TIME_LABELS.into_iter().zip(self.time_watch.clone().into_iter()) + .map(|(s, v)| format!("{} : {:.1} ms", s, v)).collect(); + + let mut result = combined_string.join(" ; "); + result.push_str(&format!(" total : {:.1}", self.time_watch.clone().iter().sum::())); + ui.label(result); + } }); }); } @@ -230,6 +244,11 @@ impl super::Calcifer { let _ = tools::save_state(&app_state, super::SAVE_PATH); } + pub fn indent_with_tabs(&mut self) { + let current_tab = &mut self.tabs[self.selected_tab.to_index()]; + current_tab.code = current_tab.code.replace(" ", "\t") + } + fn list_files(&mut self, ui: &mut egui::Ui, path: &Path) -> io::Result<()> { if let Some(name) = path.file_name() { if path.is_dir() { diff --git a/src/main.rs b/src/main.rs index eb7262a..e4ee067 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,13 +3,15 @@ mod calcifer; use eframe::egui; use calcifer::code_editor::ColorTheme; -use std::{path::Path, sync::Arc}; +use std::{path::Path, sync::Arc, time::Instant}; + use tools::Demo; use calcifer::code_editor::themes::DEFAULT_THEMES; const TERMINAL_HEIGHT : f32 = 200.0; const RED : egui::Color32 = egui::Color32::from_rgb(235, 108, 99); const SAVE_PATH : &str = "calcifer_save.json"; +const TIME_LABELS : [&str; 5] = ["settings", "tree", "terminal", "tabs", "content"]; fn main() -> Result<(), eframe::Error> { @@ -17,49 +19,52 @@ fn main() -> Result<(), eframe::Error> { let icon_data = tools::load_icon(); - env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). - let options = eframe::NativeOptions { - viewport: egui::ViewportBuilder::default() - .with_inner_size([1200.0, 800.0]) + env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). + let options = eframe::NativeOptions { + viewport: egui::ViewportBuilder::default() + .with_inner_size([1200.0, 800.0]) .with_icon(Arc::new(icon_data)), - ..Default::default() - }; - - let app_state: tools::AppState; - // Attempt to load previous state - if Path::new(SAVE_PATH).exists() { - app_state = tools::load_state(SAVE_PATH).expect("Failed to load the save"); - } else { - app_state = tools::AppState { - tabs: vec![], - theme: 0, - }; - } + ..Default::default() + }; + + let app_state: tools::AppState; + // Attempt to load previous state + if Path::new(SAVE_PATH).exists() { + app_state = tools::load_state(SAVE_PATH).expect("Failed to load the save"); + } else { + app_state = tools::AppState { + tabs: vec![], + theme: 0, + }; + } - eframe::run_native( - "Calcifer v1.0.2", - options, - Box::new(move |_cc| Box::from(Calcifer::from_app_state(app_state))), - ) + eframe::run_native( + "Calcifer v1.0.3", + options, + Box::new(move |_cc| Box::from(Calcifer::from_app_state(app_state))), + ) } struct Calcifer { - selected_tab : tools::TabNumber, - tabs: Vec, + selected_tab : tools::TabNumber, + tabs: Vec, - command: String, - command_history: Vec, + command: String, + command_history: Vec, - theme: ColorTheme, + theme: ColorTheme, search: tools::search::SearchWindow, searching: bool, + + debug_display: bool, + time_watch: Vec, } impl Default for Calcifer { - fn default() -> Self { + fn default() -> Self { Self { selected_tab: tools::TabNumber::Zero, tabs: vec![tools::Tab::default()], @@ -71,17 +76,26 @@ impl Default for Calcifer { search: tools::search::SearchWindow::default(), searching: false, + + debug_display: false, + time_watch: vec![0.0; TIME_LABELS.len()], } } } impl eframe::App for Calcifer { - fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + let mut watch = Instant::now(); + if ctx.input( |i| i.key_pressed(egui::Key::S) && i.modifiers.ctrl) { self.handle_save_file(self.save_tab()); } + if ctx.input( |i| i.key_pressed(egui::Key::T) && i.modifiers.ctrl) { + self.indent_with_tabs(); + } + if ctx.input( |i| i.key_pressed(egui::Key::S) && i.modifiers.ctrl && i.modifiers.shift) { self.handle_save_file(self.save_tab_as()); } @@ -94,10 +108,28 @@ impl eframe::App for Calcifer { } self.draw_settings(ctx); - self.draw_tree_panel(ctx); - self.draw_terminal_panel(ctx); - self.draw_tab_panel(ctx); - self.draw_content_panel(ctx); + + self.time_watch[0] = watch.elapsed().as_micros() as f32 / 1000.0; + watch = Instant::now(); + + self.draw_tree_panel(ctx); + + self.time_watch[1] = watch.elapsed().as_micros() as f32 / 1000.0; + watch = Instant::now(); + + self.draw_terminal_panel(ctx); + + self.time_watch[2] = watch.elapsed().as_micros() as f32 / 1000.0; + watch = Instant::now(); + + self.draw_tab_panel(ctx); + + self.time_watch[3] = watch.elapsed().as_micros() as f32 / 1000.0; + watch = Instant::now(); + + self.draw_content_panel(ctx); + + self.time_watch[4] = watch.elapsed().as_micros() as f32 / 1000.0; if self.searching { self.search.show(ctx, &mut self.searching, &mut self.tabs, &mut self.selected_tab);