json-joy
json-joy copied to clipboard
Peritext rendering surface UI improvements
- [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
ArrowLeftandArrowRight, allow to move half-point, i.e. one Peritext point unit, which is not necessarily skipping a whole character. Instead, when pressingRightArrow, it could move from theAfteranchor of the current character toBeforeanchor of the next character. - [ ] In multi-cursor setting, when cursor selections (or carets) overlap, join the cursors.
- [ ] Support for autocompletion popups.
- [ ]
cursorevent- [ ] Fix selection mouse down behavior.
- [ ] Support model-space locations
Point<T>. - [ ] Cleanup
CursorDetail,lenshould just benumber.
- [ ] 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
bothcursor tocaret. - [ ] Add ability to compute
.hashforInlinenodes and use that for memoization. - [ ] Reset pressed key on window resize, this will handle Devtools open event.