LivelyKernel / LivelyKernel/lively.morphic
[text] support "text modes" as text areas
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 13
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Instead of having a global text mode per text morph allow to specify text areas (ranges) in the text to which certain "mode rules" get applied. E.g. Line 1 - 10 JavaScript, then 5 lines of normal text, then JS again. Code editors in workspaces and browsers then simply have a JS attributed range from beginning to end by default.
- ~~anchoring behavior of text mode attributes need to be inclusive, i.e. when inserting text at position `{column: 0, row: 0}` the text mode shouldn't be pushed down / to the right. Same is true for insertions at the end.~~
- ~~text behavior need to adapt when cursor is inside of such a mode area~~
- [x] completion behavior
- [x] syntax highlighting
- [ ] an AST might be associated with an area and AST-based behavior such as expression navigation and selection need to adapt.
- [x] menu items
- [ ] evaluation strategy
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the text-mode area behavior described in issue #60, including the completed completion, syntax-highlighting, and menu-item adaptations. Define the remaining scope for AST-based navigation and selection and evaluation strategy before locating the relevant text morph entry points; done means mode rules and associated behavior work correctly across multiple text ranges.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100