# YACE **Yet Another Code Editor** — A lightweight, Tauri-based code editor built with CodeMirror 6, React, and TypeScript. ## Features - Multi-tab editing with syntax highlighting for TypeScript, JavaScript, Rust, Python, HTML, CSS, JSON, Markdown - File explorer with tree view, folder open/create - Custom Tokyo Night syntax theme (soft, muted colors) - Dark & light themes - Command palette (`Ctrl+P`) - Untitled file support — create and edit without a workspace folder - Auto-save, word wrap, ruler, configurable font/tab size - Custom title bar, sidebar, status bar, and context menus - Resizable side panel ## Keyboard Shortcuts | Shortcut | Action | |----------|--------| | `Ctrl+N` | New untitled file | | `Ctrl+O` | Open file | | `Ctrl+Shift+O` | Open folder | | `Ctrl+S` | Save file | | `Ctrl+W` | Close tab | | `Ctrl+P` | Command palette | | `Ctrl+B` | Toggle sidebar | | `Ctrl+Tab` / `Ctrl+Shift+Tab` | Next / previous tab | ## Supported Languages `.ts`, `.tsx`, `.js`, `.jsx`, `.mjs`, `.cjs`, `.rs`, `.json`, `.md`, `.mdx`, `.html`, `.htm`, `.css`, `.py` ## Getting Started ```bash # Install dependencies npm install # Run in browser (Vite dev server) npm run dev # Run as desktop app npm run tauri dev ``` ## Build ```bash npm run build # Type-check + Vite build npm run tauri build # Production desktop build ``` ## Tech Stack - **Frontend:** React 18, TypeScript, Zustand, Tailwind CSS, CodeMirror 6 - **Desktop:** Tauri 1.x, Rust, Tokio - **Build:** Vite ## Settings Configurable via the gear icon in the activity bar: font size, tab size, word wrap, line numbers, ruler, theme, auto-save. ## Architecture ``` ┌──────────────────────────────┐ │ TitleBar │ ├──────┬───────────────────────┤ │ │ TabsBar │ │ Acti │ Breadcrumbs │ │ vity ├───────────────────────┤ │ Bar │ YaceEditor │ │ │ (CodeMirror 6) │ │ │ │ │ Side │ │ │ Panel│ │ ├──────┴───────────────────────┤ │ StatusBar │ └──────────────────────────────┘ ```