
PhD @UMichCSE • building https://xitter.cf/t.co/sEtPaejQKZ https://xitter.cf/t.co/GvG3Va4saO
Ann Arbor, MI
Joined November 2015
- Tweets747
- Following1K
- Followers1.4K
- Likes8K
David Moon retweeted
SDF and liquid glass enthusiasts! I bring you some exciting original research I did into shape-preserving smooth blending while working on Liquid DOM.
Read on to learn why it matters, why it's hard, and how I managed to solve it. All the code is open.
David Moon retweeted
We’re doing a user study to find out how adding always-on live values alongside code effects writing and debugging experiences for functional programming. See reply for sign-up details
David Moon retweeted
given that everyone is doing token-by-token and/or line-by-line partial completion acceptance now, i'm surprised i haven't seen any that just recapitulate selection mechanics (i.e. shift-left/right for token, shift-up/down for line). we have incremental acceptance at home!
We're hoping to complete our study by Mar 23 (Sunday).
If you're interested, please fill out this form. Thanks for considering! forms.gle/4WihdnB4bLYqYcCm8
Your participation will involve using the editor to perform editing tasks in an OCaml-like lang. We're esp interested in folks with prior experience using expression-oriented langs like OCaml, Haskell, Scala, etc. You'll receive a $25 Amazon gift card for 60 minutes of your time.
I am once more seeking participants for a user study. We'll be evaluating a prototype code editor that completes your text with placeholders for missing tokens expected by the language. Here are a couple vids motivating the editor+study.
Details in thread. RTs appreciated! 🙏
Replying to @dm_0ney @krismicinski
for example, the structures shown in each selection here are determined simply by parsing the selected range of (molded) tokens, without inspecting any context beyond the immediate token neighbors
Replying to @dm_0ney @krismicinski
the remaining problem is then how to assign these molds and this is the subject of my current wip paper
Replying to @dm_0ney @krismicinski
I'm working around that limitation by tagging tokens with their grammar contexts, what I'm calling molds. once molded, tokens can be OP parsed, and this helps especially with organizing the edit state into various regions of interest while maintaining structure.
Replying to @dm_0ney @krismicinski
...meaning you can maximally parse any segment of code knowing only its token bounds. the problem with OP parsing traditionally is that it has really limited grammar expressivity, you can't reuse the same token in different ways (eg - for negation and subtraction).
Replying to @dm_0ney @krismicinski
...to break things up into multiple passes, as opposed to having to do a lot of things at once in some required context.
another thing here is I've been developing a new approach to parsing based on operator precedence parsing, which has the nice property of local parsability...
Replying to @krismicinski
yeah that has been a big challenge/focus of this work. one design pattern I've found useful is having a syntax tree that I can unzip into a bottom-up zipper, and that by construction accumulates paths to points of interest when rezipping. this makes it possible...




