This is just a fun project. It is a text editor that supports highlighting through provided parser and basic editor actions. The editor is optimized to handle large texts (hundreds of thousands of characters). I took inspiration for some performance optimizations from the great Ace editor.
The editor is meant as a package, exporting init
, update
and view
functions and some related types from the Main.elm
module.
However, there is the Playground.elm
file with an example usage linked in the index.html
to try it out.
To try the example:
- Run
npm i
to install npm dependencies (most notablyelm
itself) - Run
npm run make
to compile the example (outputs resulting js file intogenerated
directory) - Open the
index.html
file and try out the editor
- Expand configurability of the editor. Especially keyboard handling.
- Add several prepared configuration to have options for a quick start.
- Add support for popovers on cursor or line number.
- Add support for multiple cursors.