|
|
@@ -14,13 +14,13 @@ TUI: TuiEditor (Ncurses) - Must remain functional as a fallback.
|
|
|
Scripting: Lua 5.4 is the source of truth for configuration and extension.
|
|
|
|
|
|
YOUR MANDATE
|
|
|
-You are responsible for implementing the remaining "Emacs DNA" features (Kill Ring, Mark/Region, Window Splits) and polishing the GTK4 frontend.
|
|
|
+You are responsible for implementing the remaining "Emacs DNA" features and solving all the existing issues in the codebase.
|
|
|
|
|
|
OPERATIONAL RULES (STRICT)
|
|
|
|
|
|
1. The "State File" Protocol (CRITICAL)
|
|
|
|
|
|
-You must maintain a file in the repo root named DEV_STATE.md.
|
|
|
+You must maintain a file in the repo documentation folder named DEV_STATE.md.
|
|
|
|
|
|
Read-First: Before every task, read this file to understand the architecture and current focus.
|
|
|
|
|
|
@@ -56,63 +56,3 @@ Update State: Generate new DEV_STATE.md content.
|
|
|
|
|
|
Commit: Generate shell commands.
|
|
|
|
|
|
-
|
|
|
-# Lumacs Development State
|
|
|
-
|
|
|
-1. Architecture Overview
|
|
|
-
|
|
|
-Pattern: MVC-ish. EditorCore (Model/Controller) <-> IEditorView (View Interface).
|
|
|
-
|
|
|
-Core: Buffer (gap buffer/rope), Window (layout tree), Face (styling).
|
|
|
-
|
|
|
-Scripting: Lua 5.4 embedded. Keymaps are Lua tables.
|
|
|
-
|
|
|
-UI Implementation:
|
|
|
-
|
|
|
-src/gtk_editor.cpp (GTK4/gtkmm)
|
|
|
-
|
|
|
-src/tui_editor.cpp (Ncurses)
|
|
|
-
|
|
|
-2. Current Focus: Phase 6 (GTK Polish) & Missing Core Features
|
|
|
-
|
|
|
-We are stabilizing the GTK frontend and filling in missing "Emacs DNA" features in the core.
|
|
|
-
|
|
|
-3. Immediate Todo List (Prioritized)
|
|
|
-
|
|
|
-High Priority (Stability & UI)
|
|
|
-
|
|
|
-[ ] Fix Exit Crash: Resolve double-free on GtkEditor destruction (likely event callback cleanup).
|
|
|
-
|
|
|
-[ ] Scrolling: Implement viewport offset/scrolling in GtkEditor (currently static).
|
|
|
-
|
|
|
-[ ] Window Splits (GTK): Implement Gtk::Paned or Gtk::Grid logic to match Core's window tree.
|
|
|
-
|
|
|
-High Priority (Core Features)
|
|
|
-
|
|
|
-[ ] Kill Ring: Implement KillRing class in C++ and expose yank/kill to Lua.
|
|
|
-
|
|
|
-[ ] Mark & Region: Add mark_ and mark_active_ to Buffer. Implement region_beginning/end.
|
|
|
-
|
|
|
-[ ] Buffer Management: Add switch-to-buffer and list-buffers logic.
|
|
|
-
|
|
|
-Medium Priority
|
|
|
-
|
|
|
-[ ] Modeline: Render status bars for each window in GTK.
|
|
|
-
|
|
|
-[ ] Word Movement: Implement move_forward_word / backward in Core.
|
|
|
-
|
|
|
-[ ] Search: Implement Incremental Search state machine.
|
|
|
-
|
|
|
-4. Completed Features (Manifest)
|
|
|
-
|
|
|
-Core: Basic editing, Undo/Redo, Gap Buffer, Face System, Lua Config.
|
|
|
-
|
|
|
-GTK: Basic window, Pango rendering, Keyboard input, Cursor (inverted block).
|
|
|
-
|
|
|
-TUI: Full Ncurses fallback.
|
|
|
-
|
|
|
-5. Technical Debt / Notes
|
|
|
-
|
|
|
-GTK Lifetime: Ensure Gtk::Application and IEditorView lifecycles don't conflict during shutdown.
|
|
|
-
|
|
|
-Performance: Watch out for Pango layout regeneration on every keystroke; consider caching layouts.
|