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 ito install npm dependencies (most notablyelmitself) - Run
npm run maketo compile the example (outputs resulting js file intogenerateddirectory) - Open the
index.htmlfile 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.