Elm-pair helps you write Elm code. You tell Elm-pair about the change you want to make and it will do the actual work. It's a bit like using an IDE, except you don't need to learn any keyboard shortcuts.
You talk to Elm-pair by making a change in your code. If Elm-pair understands your intent then it will follow up with its own change.
Rename a variable and Elm-pair will propagate the new name wherever the variable is used. Elm-pair will propagate type and constructor names in the same way.
As you change an import statement alias or exposing list, Elm-pair will update your code to keep it compiling.
Elm-pair integrates with your editor of choice. Currently Neovim is supported and Visual Studio Code support is on the way, with support for additional editors planned. Elm-pair runs on MacOS and Linux.
You can find installation instructions at https://elm-pair.com/install.
This project is made possible by a couple of others.
- tree-sitter is a library for fast code parsing. It allows Elm-pair to listen to every key stroke and figure out programmer intent quickly and efficiently.
- tree-sitter-elm is an extension for tree-sitter that adds support for the Elm programming language.
- ropey provides the 'rope' datastructure Elm-pair uses to store local copies of source code.
- notify makes it easy for Elm-pair to subscribe to changes in the file system, so it can keep up with what's happening in your Elm projects.
- differential-dataflow provides a way to do incremental computation, allowing Elm-pair to do the bare minimum of work when a file changes.