Skip to content

Latest commit

 

History

History
87 lines (63 loc) · 1.94 KB

README.md

File metadata and controls

87 lines (63 loc) · 1.94 KB

editor

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:

Screenshot of Editor

TODO

Textbuffer

  • Indent Selected using Tab (small problem with cursors)
  • Highlight focused word

Modes

  • Search and replace in file and whole folder
  • Align defines handle comments
  • Shift tab work with spaces

Future

  • 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)

Project overview

Abbreviations Index

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]

Common Functions

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