top | item 40501873

(no title)

dexen | 1 year ago

I particularly like how in Acme, when selection is zero-width ("empty"), it is the cursor. Conversely selection can be extended from cursor in any direction.

As a side effect, this greatly simplifies the API for manipulating both.

discuss

order

gcassie|1 year ago

I actually used this pattern as well and I really like it. I store another property called `mark_idx`. When `cursor_idx` and `mark_idx` are the same then it's just a cursor. When they differ, the range between them is the selection.