rhombus-prototype
rhombus-prototype copied to clipboard
make RFC for projectional editing?
MPS supports projectional editing. Should Racket2 do so too?
cc @LeifAndersen
For the record, I feel that Fructjure represents a better approach than a new surface syntax.
While I'm also a fan of fructure, I feel that at the moment there are conceptual, technical, and social issues with projectional editing that makes it awkward to consider as a strict alternative to syntax renewal. It's definitely something I'm going to be experimenting with; also see isomorf for a more immediately applicable example of switching between surface syntaxes: https://isomorf.io/#!/syntax-picker/tours-overview .
That said, I for sure think richer language-editor integration should be on the table. Starting with a very prosaic example: When I define new syntax, I currently use (eg) Dr. Racket's preferences to determine its highlighting/indentation behavior. I might like to be able to determine/suggest said behavior in a language-oriented manner, either inline with my syntax definition, or as some kind of seperate style sheet.
More broadly, I'd like to talk/hear about support for defining new editor modes, both in terms of interaction and projection, at library and #language levels.
Reading is different than writing. Understanding is different than solving. “Code is read more than it's written/changed”. Many debates about syntax are unclear about the distinction, and some claims are not only more true of one mode than the other, many are as false for one mode as they are true for the other.
This needs details and examples, which I hope to supply at some point, but one conclusion (or personal preference if that sounds too strong at the moment) is that being able to easily view code in many different ways is much more important than easing the editing of the source (and easing the viewing of it would help me a lot during editing). In particular, some sort of style-sheets-for-code is likely a sweet-spot for power and simplicity.
Recall also that a surface syntax change affects far more than just editable code. Code snippets in markdown files, example code in Scribble docs, code snippets typed in mailing list emails and chatrooms, random blog posts, etc. would all be affected by a changed surface syntax. Unless a projectional editor can somehow automatically and transparently integrate with all of these places at once, it won't address the same use cases as a surface syntax change.
While this seems like a fine direction for a language, it hasn't turned out to be the Rhombus direction. Closing as "moving on".