better readme and redrawing calls
This commit is contained in:
parent
a6926ae156
commit
5590ba16e4
|
@ -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
|
||||
|
||||
|
|
60
README.md
60
README.md
|
@ -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
|
||||
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
|
||||
|
||||
# 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)
|
||||
# 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
BIN
assets/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 259 KiB |
|
@ -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
|
||||
};
|
||||
}
|
|
@ -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":[]}]}
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue