The goal of this project is to create a lightweight code editor written in C, that is optimized for C projects, is performant, and productive.
This is what it looks like editing its own source code:
- Indent Selected using Tab (small problem with cursors)
- Highlight focused word
- Search and replace in file and whole folder
- Align defines handle comments
- Shift tab work with spaces
- Fix unicode problems
- Undo / Redo
- Multiple Cursors
- Adjust Font Size and Line Spacing (CTRL +/- or scroll)
- Adjust Font
- Config File? (Loading, Parsing, Saving)
- Remember last opened file
- Show memory Usage, current text column, size of file in bytes, length of selection in bytes and lines in bar at bottom of screen (hideable)
I use two (or three) letter abbreviations as a module prefix. (Work in progress)
DONE:
BF = Buffer Management [buffers.c]
TB = Text Buffer [textbuf.c]
TF = Text Field [textfld.c]
DD = Dropdown Menu [dropdown.c]
GT = Go to location [goto.c]
OB = Open Buffers [opened.c]
CF = Confirmation dialog [confirm.c]
MSG = Message (Error or Info) [msg.c]
VEC = Vector (Dynamic array) [vector.c]
IO = Input / Output (Platform dependant) [io.c]
KW = Keyword hashtable (for syntax highlighting) [keyword.c]
TODO:
SR = Search and Replace [search.c]
SV = Save File (As) [save_as.c]
OP = Open File [open.c]
RR = Rendering [render.c]
CR = Cursor [cursor.c]
SEL = Selection [cursor.c]
example_init
Initialize example (for the first time)
example_destroy
Cleanup example, when it is no longer used (Free memory, etc.)
example_key
Example receives a keypress
example_open
Make example visible on the screen and focus it
example_clear
Reset example to initial state
(For example, text field to empty string)
example_render
Example is rendered to the screen