1. Introduction
  2. Setup
    1. Setup an editor
    2. The Zig build system
  3. The main.zig file
    1. Panic handler
  4. Terminal configuration
    1. The linux module
    2. Enabling raw mode
    3. Back to main.zig
  5. Getting the window size
    1. The ioctl method
    2. The cursor position method
    3. First test
  6. Digression: the comptime keyword
  7. The editor types
    1. Editor
    2. Buffer
    3. Row
    4. View
    5. Digression: default initializers
  8. Initialize the editor
  9. Keypress processing
    1. Key enum
    2. Reading keys
  10. I/O: reading
    1. Reading a file
    2. Io.Reader
    3. Digression: assignments in Zig
  11. Filling rows
    1. Inserting a row
    2. Updating a row
    3. Write a test
  12. The screen surface
    1. More escape sequences
    2. Refresh the screen
    3. Drawing the rows
    4. The statusline
    5. The message area
    6. The welcome message
  13. A text viewer
    1. More Row methods
    2. More keypress handling
    3. Move with keys
    4. Handling the wanted column
    5. Scroll the view
  14. A text editor
    1. Insert characters
    2. Deleting a character
    3. The string module
    4. Insert a new line
    5. Handling text wrapping
  15. Interacting with the user
  16. I/O: writing
    1. Saving a file
  17. Prompts
    1. Prompting for a filename
  18. Highlight
    1. Highlight enum
    2. Highlight groups
    3. More comptime
    4. Applying the highlight
    5. Higlight non-printable characters
  19. Searching
    1. The prompt callback
    2. EditorError set
    3. Updated promptForInput()
  20. Doing the search
    1. Preparations
    2. The findCallback() function
    3. Search forwards
    4. Search backwards
    5. Write a test
  21. Syntax highlighting
    1. Syntax types
    2. Syntax definitions
    3. New string functions
    4. Digression: inline keyword
    5. Filetype detection
  22. Doing the highlight
    1. Top-level symbols
    2. Multi-line comments
    3. Line comments, strings
    4. Numbers
    5. Keywords and uppercase words
  23. Conclusion