An editor for text that renders fractions vertically
Go to file
Kartik K. Agaram 9705a76459 bugfix
Scenario:
  open a (new) file in the editor
  type some text into a file (so cursor is not at the start)
  close the editor
  delete the file
  reopen the editor without specifying a file

Before this commit, the cursor wouldn't be visible (it's off the end of
the file), and typing any letters would crash the editor.
2024-10-02 10:15:11 -07:00
assets add a video showing mouse clicks 2024-09-08 22:29:36 -07:00
LICENSE.txt add a license 2022-05-16 18:51:28 -07:00
README.md drop nativefs 2024-09-30 00:50:16 -07:00
array.lua turn move.lua back into its own center without any globals 2024-09-17 16:00:36 -07:00
edit.lua bugfix 2024-10-02 10:15:11 -07:00
font_height.lua split up edit.lua without introducing globals 2024-09-17 15:22:56 -07:00
json.lua forgot to add json.lua 2022-05-15 14:36:25 -07:00
loc.lua turn move.lua back into its own center without any globals 2024-09-17 16:00:36 -07:00
main.lua Merge text2.love 2024-09-19 22:07:17 -07:00
move.lua Merge text2.love 2024-09-26 15:58:18 -07:00
my_utf8.lua split up edit.lua without introducing globals 2024-09-17 15:22:56 -07:00
rects.lua rename rects.compute_rects to rects.compute 2024-09-17 18:24:01 -07:00
utils.lua turn move.lua back into its own center without any globals 2024-09-17 16:00:36 -07:00

README.md

An editor for text that renders fractions vertically

0 dependencies!

Even though fractions are arranged vertically, they're conceptually in a single line separated by /. To move "down" you still press left and right arrows. The following video shows entirely left/right arrows, and inserting new fractions using the / key.

Mouse clicks should be fairly intuitive.

Not very useful by itself, but it illustrates the sort of thing that is relatively easy to add to text2.love. It doesn't mess with the text2.love API, but instead swaps out an internal workhorse rects.compute which is used absolutely everywhere: for drawing to the screen, for mapping mouse clicks back to locations in the file, for keypresses, etc. See the comment in rects.lua for more information.

Getting started

Install LÖVE. It's just a 5MB download, open-source and extremely well-behaved.

To run from the terminal, pass this directory to LÖVE, optionally with a file path to edit.

Alternatively, turn it into a .love file you can double-click on:

$ zip -r /tmp/fractions.love *.lua

By default, fractions.love reads/writes the file lines.txt in a directory relative to this app.

To open a different file, drop it on the fractions.love window.

Keyboard shortcuts

While editing text:

  • ctrl+f to find patterns within a file
  • ctrl+c to copy, ctrl+x to cut, ctrl+v to paste
  • ctrl+z to undo, ctrl+y to redo
  • ctrl+= to zoom in, ctrl+- to zoom out, ctrl+0 to reset zoom
  • alt+right/alt+left to jump to the next/previous word, respectively
  • mouse drag or shift + movement to select text, ctrl+a to select all

Exclusively tested so far with a US keyboard layout. If you use a different layout, please let me know if things worked, or if you found anything amiss: http://akkartik.name/contact

Known issues

  • No support yet for Unicode graphemes spanning multiple codepoints.

  • No support yet for right-to-left languages.

  • If you ever see a crash when clicking on the mouse, it might be because a mouse press and release need to happen in separate frames. Try pressing and releasing more slowly and let me know if that helps or not. This is klunky, sorry.

  • Can't scroll while selecting text with mouse.

  • No scrollbars yet. That stuff is hard.

Mirrors and Forks

This repo is a fork of lines.love. Its immediate upstream is text2.love, an embeddable text editor widget which provides features like word-wrap, unlimited undo in 1200 lines of code. Updates to it can be downloaded from the following mirrors:

Further forks are encouraged. If you show me your fork, I'll link to it here.

Feedback

Most appreciated. Messages, PRs, patches, forks, it's all good.