Parinfer is a new kind of editor plugin that improves the experience of writing code in Lisp. Through research it was discovered that by enforcing a formal relationship between parentheses and indentation, we can allow more kinds of structural editing operations without hotkeys.
(See the link above for details in the original research paper.)
We exist to facilitate the continued development of Parinfer as a real practitioner’s tool— as much as possible for modern editors today, and also to influence better support in editors tomorrow.
🔬 | As a research project, Parinfer was completed and archived in 2019 after the design of a “Smart Mode” was completed. |
⚙️ | As a community tool for real programmers, Parinfer is still at various stages of development across editors. And there are still more fixes and tooling needed to make Parinfer work more broadly across different languages and team conventions. |
Development on the following roadmap started in September 2022.
- Parstager: undo parinfer formatting on unchanged top-level forms before staging in git
- Allow closing parens after indented comment lines
- Fixes for non-clojure dialects
- Canonical exe to share between plugins (in c)
- Clarify and facilitate editor support (e.g. vscode)
- Simplified landing page
- Create a visual model for describing Parinfer’s operations (e.g. based on the “pills” in the logo)
- Include historical visual models created for Clojure Conj 2017