better readme and redrawing calls

This commit is contained in:
WanderingPenwing 2024-07-14 15:24:16 +02:00
parent a6926ae156
commit 5590ba16e4
6 changed files with 22 additions and 83 deletions

View file

@ -1,7 +1,7 @@
[package]
name = "calcifer"
version = "1.3.0"
edition = "2021"
version = "1.3.1"
edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View file

@ -1,53 +1,21 @@
# Calcifer
My custom code editor (only the features I want inside) using egui and my own fork of egui_code_editor https://lib.rs/crates/egui_code_editor
# 0.1.0 :
Added a File Tree
Added Tabs
Added an Embedded Terminal
Added Syntax Highlighting
Added Themes
# 0.2.0 :
Fixed Terminal sterr output
Fixed scroll between tabs
Library subjugation (got the raw files of the egui_code_editor for some internal modifications)
# 0.3.0 :
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 indentation level is kept)
My custom code editor (only the features I want inside) using egui and a fork of egui_code_editor https://lib.rs/crates/egui_code_editor
# GUI
using egui to have immediate mod rendering (so the app is using very few processing power when not interacted with)
# 0.4.0 :
# Screeshots
![screenshot](./assets/screenshot.png)
Added testing
Added Ctrl+T : refresh current tab
Added Time debug
Added Tree toggle for performance
Added Alt+Arrows to move through tabs
Added Zoom
Added cd
Added terminal color
Max tabs 8 => 20
Max framerate => 30 fps (less cpu usage)
# Features
- find and replace
- undo/redo
- syntax highlighting (asm, js, lua, py, rust, shell, sql)
- simple themes
- tabs
- file tree
- terminal
- a very crude project mode (kanban)
# 1.0.0 :
Added confirm prompt if unsaved
Async terminal !
Real Ui
# 1.1.0 :
Better error handling
#1.2.0 :
Project mode (when opening a .project file)
Support for js

BIN
assets/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

View file

@ -1,29 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation rec {
pname = "Calcifer";
version = "1.0";
src = pkgs.fetchFromGitHub {
owner = "WanderingPenwing";
repo = "Calcifer";
rev = "v${version}";
sha256 = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef";
};
buildInputs = [ pkgs.rustc pkgs.cargo ];
nativeBuildInputs = [ pkgs.pkg-config ];
cargoSha256 = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef";
installPhase = ''
cargo install --path . --root $out
'';
meta = with pkgs.stdenv.lib; {
description = "MyApp - A simple desktop application written in Rust";
homepage = "https://github.com/your-github-username/myapp";
license = licenses.mit;
maintainers = [ maintainers.your-name ];s
};
}

View file

@ -1 +1 @@
{"categories":[{"name":"to do","content":[{"name":"clean up","description":"using the feedback from ourstory discord","id":1},{"name":"keep tree in save","description":"keep track of the opened tabs and reopens them\n","id":1},{"name":"open text file with calcifer directly","description":"// Hello there","id":1},{"name":"better tab names","description":"detect closest project file (within limits)\nif there is one, use its name for the tab name : \"project_name - file_name\"\n\nadd \" \" to the tab name to be able to click everywhere","id":1}]},{"name":"in progress","content":[]},{"name":"done","content":[{"name":"mark tab as unsaved (project)","description":"when modifying a project, mark it as unsaved","id":2},{"name":"fix + color in project","description":"the '+' to add an item has a wrong color if last item in list is selected","id":3},{"name":"be able to delete category","description":"in project mode, if no focus and name is empty => delete category\n\nalready did xD I am a geniius\nfor clarification, I had a loong pause in develompent, and had forgotten I had this implemented, and while looking for where to code it, i found at the exact right place, the exact code needed","id":5},{"name":"update category layout","description":"take inspo form tab layout (number of column is max( min col, n_col +1)\nor scroll ?","id":6},{"name":"less enter trigger (project)","description":"if in a textbox, don't open the item window when enter is pressed","id":3},{"name":"be able to delete item","description":"in project mode add a button in item edit window to delete an item","id":4}]},{"name":"bugs","content":[{"name":"fix undo","description":"undo struggles when switching tabs \n\npotential fix : each code textarea name depend on tabname","id":1}]},{"name":"+","content":[]}]}
{"categories":[{"name":"to do","content":[{"name":"inspire from Jiji refresh","description":"use egui::Context::request_repaint_after(ctx, Duration::from_secs_f32(BACKGROUND_REFRESH_DELAY));\n\n","id":1}]},{"name":"+","content":[]}]}

View file

@ -6,6 +6,7 @@ use egui::{
use homedir::get_my_home;
use std::{ops::Range, path::PathBuf, sync::Arc, thread, time};
use std::env;
use std::time::Duration;
mod core;
mod editor;
@ -30,7 +31,7 @@ const ZOOM_FACTOR: f32 = 1.1;
const MAX_FPS: f32 = 30.0;
const DISPLAY_PATH_DEPTH: usize = 3;
const MAX_PROJECT_COLUMNS: usize = 8;
const RUNNING_COMMAND_REFRESH_DELAY: f32 = 0.1;
const RUNNING_COMMAND_REFRESH_DELAY: f32 = 0.2;
fn main() -> Result<(), eframe::Error> {
let icon_data = core::load_icon().unwrap_or_default();
@ -304,9 +305,8 @@ impl eframe::App for Calcifer {
self.time_watch[6] = watch.elapsed().as_micros() as f32 / 1000.0;
if self.running_command && !ctx.input(|i| i.wants_repaint()) {
thread::sleep(time::Duration::from_secs_f32(RUNNING_COMMAND_REFRESH_DELAY));
egui::Context::request_repaint(ctx);
if self.running_command {
egui::Context::request_repaint_after(ctx, Duration::from_secs_f32(RUNNING_COMMAND_REFRESH_DELAY));
}
}