Skip to content

pacocoursey/writer

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

writer

Plain text editor from scratch, made for the web. Drag and drop files to open them.

Architecture

  • Buffer is an array of array of lines
  • Text is manually measured and wrapped with canvas
  • Lines are virtualized on scroll and drawn as divs
  • Cursor and selection are also divs
  • Word boundary operations are emulated with textarea
  • Styling through CSS variables

Future

  • B-tree buffer with height map
  • History system
  • Operational transform
  • Alternate canvas renderer with FreeType and Harfbuzz