summaryrefslogtreecommitdiff
path: root/TODO.org
blob: 87d0745ca59c3f6656679ade7d76be6775087967 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
* DONE Choose either Criterion or Unity as the testing framework and add a target test to the build system.
* DONE Write an initial TDD (Test-Driven Development) set for vector and line.
* TODO As implement new Editorbuffer API, write corresponding unit tests.

* Refactor
** DONE Remove the implicit dependancy of MemAlloc and MemFree provided by Raylib.
introduce a tiny allocater wrapper(ed_alloc.h) that defaults to
malloc/free and can be overriden in tests.
** DONE Replace scattered `#ifdef DEBUG` prints with a reallog macro family.
(levels: DEBUG/INFO/WARNING/ERROR/CRITICAL)
** Strengthen `line`/`editor` invariants.
*** TODO Guarantee cursor never overwrites the terminating '\0'
*** TODO Add edge-case tests: enpty line, NULL-line placeholders, split/cat boundaries

* Implement
** Implement file I/O (UTF-8)
*** DONE eb_load_file(), eb_save_file() using mmap/fputc
** Veiwpoint & scrolling
*** TODO Use existing eb->scroll_row to handle mouse-wheel and PgUp/PgDn
** TODO selection + clipoard (kill ring)
** TODO Undo/Redo via command stack
** TODO tracking execution time

* Migration
** TODO piece-table migration :RESEARCH:
spike branch; benchmark vs. current vector-of-lines.
** Rendering optimiation :PERF:
Dirty-line tracking, font atlas reuse.
** CI pipeline :CI:
Github actions, ASan, clang-tidy, coverage >= 80%.
** Syntax highlighting stub (Tree-sitter, etc.) :LATER:
** Config/keymap loader & basic plugin hooks :LATER: