Plisp / vico

this was absolutely the wrong direction https://plisp.github.io/posts/Editing-abstraction-not-text-updated.html

Home Page:https://plisp.github.io/posts/Editing-abstraction-not-text-updated.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

this was absolutely the wrong direction https://plisp.github.io/posts/Editing-abstraction-not-text-updated.html

https://plisp.github.io/posts/Editing-abstraction-not-text-updated.html

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Common Lisp 87.0%Language:HTML 12.5%Language:Perl 0.4%