json-joy icon indicating copy to clipboard operation
json-joy copied to clipboard

Peritext rendering surface UI improvements

Open streamich opened this issue 1 year ago • 0 comments

  • [x] Ability to provide custom renderers for all elements.
    • [x] Caret
    • [x] Selection anchor
    • [x] Selection focus
    • [x] Selection body
    • [x] Inline
    • [x] Leaf block
    • [x] Block
    • [x] Whole document
  • [x] Ability to compose many renderer maps together.
  • [ ] Ability to add custom events.
  • [x] Handle soft line navigation.
    • [x] Detect soft line wrap boundaries.
  • [ ] Ability to provide suggestions, inlay hints.
    • [ ] Spellcheking
    • [ ] Integration with LLM
  • [ ] Add concept of blurred cursor. The cursor becomes grey when editor loses focus, when editor regains focus, the starting cursor position is where the blurred cursor was left.
  • [ ] When navigating with ArrowLeft and ArrowRight, allow to move half-point, i.e. one Peritext point unit, which is not necessarily skipping a whole character. Instead, when pressing RightArrow, it could move from the After anchor of the current character to Before anchor of the next character.
  • [ ] In multi-cursor setting, when cursor selections (or carets) overlap, join the cursors.
  • [ ] Support for autocompletion popups.
  • [ ] cursor event
    • [ ] Fix selection mouse down behavior.
    • [ ] Support model-space locations Point<T>.
    • [ ] Cleanup CursorDetail, len should just be number.
  • [ ] Narrow down DOM controller depedency types, pick only what is necessary from event objects.
  • [ ] In all cursor edges, in view, render the side specifying to which character anchor point the cursor is attached.
  • [ ] Rename both cursor to caret.
  • [ ] Add ability to compute .hash for Inline nodes and use that for memoization.
  • [ ] Reset pressed key on window resize, this will handle Devtools open event.

streamich avatar Oct 15 '24 17:10 streamich