diff --git a/ved/WORKPLAN.md b/ved/WORKPLAN.md deleted file mode 100644 index 6816900..0000000 --- a/ved/WORKPLAN.md +++ /dev/null @@ -1,80 +0,0 @@ -# Vi-style Editor with Ollama Code Prediction - -## Overview -Terminal-based code editor written in C with nvi-style modal editing and local LLM-powered code completion via Ollama. For Linux CLI. Target users: personal + colleagues. - -## Editor Scope (nvi-style) - -### Modal Editing -- Normal, Insert, Command-line (`:`) modes - -### Navigation -- `h/j/k/l` — basic movement -- `w/b/e` — word movement -- `0/$` — line start/end -- `^f/^b` — page up/down -- `G/gg` — file start/end -- `f/t/F/T` — find char on line, with counts - -### Operators + Motions -- `d`, `y`, `c` combined with any motion (e.g. `c3td`, `d$`, `y2w`) -- Single unnamed buffer for yank/delete -- `p/P` — paste after/before - -### Other -- `.` — repeat last command -- `u` — undo -- `:w`, `:q`, `:wq`, `:e` — file commands -- `:/regex` — search -- `:%s/pat/rep/g` — substitution - -### Out of Scope -- Macros, named registers, splits, tabs - -## Language Support -- C -- Assembly - -## Ollama Integration - -### Models (user-configurable) -- gemma2:2b -- deepseek-r1:1.5b -- qwen2.5-coder:3b -- gemma3:4b - -### Completion Behavior -- Idle timer in insert mode (~300ms) triggers completion request -- Tab to accept ghost text (rendered dim) -- Context sent: current function/block (enclosing `{}`) + current line -- Endpoint: `POST http://localhost:11434/api/generate` (streaming JSON) - -## Architecture - -``` -src/ - main.c — entry point, arg parsing - terminal.c — raw mode, ncurses screen management - buffer.c — gap buffer or piece table, line indexing - editor.c — editor state, viewport, cursor - input.c — keypress reading, modal dispatch - normal.c — normal mode commands, operator-motion parsing - insert.c — insert mode, char input, trigger completion - command.c — : command line parsing and execution - search.c — regex search (POSIX regex.h) - undo.c — undo list - ollama.c — HTTP client (libcurl), prompt building, response parsing - syntax.c — minimal scope detection for C/asm (brace matching) - config.c — runtime config (~/.editorrc or similar) -``` - -## Dependencies -- ncurses — terminal UI -- libcurl — Ollama HTTP communication -- POSIX regex.h — search/replace (libc) -- cJSON (or hand-rolled) — parse Ollama JSON responses - -## Design Decisions to Finalize -- [ ] Text buffer: gap buffer (simpler) vs piece table (better for large files) -- [ ] Visual mode: include char/line visual mode? -- [ ] Config file format and location