Skip to content

Plisp/vico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A text editor in progress

demo

Run with (vico-term:dmain FILENAME) from a remote slime connection (slime-connect) or dump into a executable (in the current working directory) with

sbcl --eval "(ql:quickload :vico-term)" \
--eval "(uiop:register-image-restore-hook #'vico-term:main nil)" \
--eval "(uiop:dump-image (concatenate 'string (namestring (uiop:getcwd)) \"vico\") :executable t)"

This project aims to be a performant, extensible, single-user editor. Implementations supported will include SBCL, CCL and ECL.

TODO

  • fix text deletion
  • rewrite redisplay for editing
  • rewrite buffer interface and add error handling
  • implement interface: use bytes and mmap() in buffer backend
  • regex search - a bit tricky
  • write proper terminal abstractions, split into library
  • undo/redo - tricky
  • implement file saving - easy
  • implement buffer collapse - won't work
  • selections - easy
  • fix cl-ppcre edge cases, replace BMH matchers (they work now actually)
  • event system overhaul
  • layout-based windowing (resizing is trivial)
  • search - easy
  • autocompletion, work out interaction with snippets
  • bracket matching - easy
  • timers - easy
  • auto-indent (lisp)
  • mouse tracking - selections/clicks/gestures
  • clipboard - easy
  • configuration file - easy
  • file watching using shinmera's file-notify
  • SDL2 frontend