Pantograph: A Fluid and Typed Structure Editor
Jacob Prinz, Henry Blanchette, Leonidas Lampropoulos

TL;DR
Pantograph is a novel structure editor that maintains valid program syntax and types during editing by generalizing selection and typing contexts, enabling fluid and correct program modifications.
Contribution
It introduces a new approach to structure editing that preserves program correctness without sacrificing editing fluidity, through novel selection and typing of tree contexts.
Findings
Students learned to program effectively with Pantograph.
Pantograph outperforms traditional text editors in editing fluidity.
The system maintains well-typed programs during editing.
Abstract
Structure editors operate directly on a program's syntactic tree structure. At first glance, this allows for the exciting possibility that such an editor could enforce correctness properties: programs could be well-formed and sometimes even well-typed by construction. Unfortunately, traditional approaches to structure editing that attempt to rigidly enforce these properties face a seemingly fundamental problem, known in the literature as viscosity. Making changes to existing programs often requires temporarily breaking program structure -- but disallowing such changes makes it difficult to edit programs! In this paper, we present a scheme for structure editing which always maintains a valid program structure without sacrificing the fluidity necessary to freely edit programs. Two key pieces help solve this puzzle: first, we develop a novel generalization of selection for tree-based…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
