mirror of
https://github.com/roc-lang/roc.git
synced 2024-11-11 16:51:53 +03:00
4.2 KiB
4.2 KiB
(For background, this talk has an overview of the design goals for the editor.)
Editor Ideas
Here are some ideas and interesting resources for the editor. Feel free to make a PR to add more!
Sources of Potential Inspiration
These are potentially inspirational resources for the editor's design.
Package-specific editor integrations
(Or possibly module-specific integrations, type-specific integrations, etc.)
- What FP can learn from Smalltalk by Aditya Siram
- Moldable development by Tudor Gîrba
- Unity game engine
- Scripts can expose values as text inputs, sliders, checkboxes, etc or even generate custom graphical inputs
- Drag-n-drop game objects and component into script interfaces
- How to Visualize Data Structures in VS Code
Live Interactivity
- Up and Down the Ladder of Abstraction by Bret Victor
- 7 Bret Victor talks
- Against the Current by Chris Granger
- Sketch-n-Sketch: Interactive SVG Programming with Direct Manipulation by Ravi Chugh
- Xi modern text editor with concurrent editing (related to Druid)
- Self programming language
Debugging
Structured Editing
-
Deuce (videos on the right) by Ravi Chugh and others
-
Fructure: A Structured Editing Engine in Racket by Andrew Blinn
-
- code editor as prose writer
- live preview
- possible inspiration for live interactivity as well
-
- Blueprints visual scripting (not suggesting visual scripting for Roc)
-
Live Programing by [Microsoft Research] it contains many interesting research papers.
Non-Code Related Inspiration
- Scrivner writing app for novelists, screenwriters, and more
- Word processors (Word, Google Docs, etc)
- Comments that are parallel to the text of the document.
- Comments can act as discussions and not just statements.
- Easy tooling around adding tables and other stylised text
- Excel and Google Sheets
- Not sure, maybe something they do well that we (code editors) could learn from
General Thoughts/Ideas
Thoughts and ideas possibly taken from above inspirations or separate.
- ACCESSIBILITY!!!
- From Google Docs' comments, adding tests in a similar manner, where they exists in the same "document" but parallel to the code being written
- Makes sense for unit tests, keeps the test close to the source
- Doesn't necessarily make sense for integration or e2e testing
- Maybe easier to manually trigger a test related to exactly what code you're writing
- "Error mode" where the editor jumps you to the next error
- Similar in theory to diff tools that jump you to the next merge conflict
- dependency recommendation