• Stars
    star
    107
  • Rank 323,587 (Top 7 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An artificial pair-programmer that helps you write Elm

Elm-pair logo Elm-pair

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.

Renaming variables, types, and constructors

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.

Demonstration of rename functionality in Visual Studio Code

Changing import statements

As you change an import statement alias or exposing list, Elm-pair will update your code to keep it compiling.

Demonstration of import statement functionality in Visual Studio Code

Use your own editor

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.

Get it

You can find installation instructions at https://elm-pair.com/install.

Acknowledgements

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.

More Repositories

1

shy

Safely build shell one-liners with live feedback!
Haskell
32
star
2

flyd-lift-react

Lift React components to take flyd streams.
JavaScript
24
star
3

fantasy-do

do notation for javascript
JavaScript
8
star
4

json-schema-validation-middleware

Validate your incoming requests using a json schema.
JavaScript
7
star
5

elm-interop

Generation of Elm types, decoders, and encoders from Haskell types
Haskell
6
star
6

fantasy-dict

Fantasy-land compatible dictionary.
JavaScript
6
star
7

nix

Nix configurations of all my machines
Nix
5
star
8

random-colors

Automatically generates a random shell color scheme for every branch of every project.
Nim
5
star
9

ghc-generics-cheatsheet

Annotated GHC generics representations of example types
Elm
4
star
10

launch

FZF based launcher for personal use
Nim
3
star
11

elmv

The right Elm in the right place
JavaScript
3
star
12

gulp-exemplary

Turn code examples into testcases.
JavaScript
3
star
13

require-compiled

The easiest way to use babel-compiled modules in your code
JavaScript
2
star
14

elm-metric

The metric system in Elm, an experiment in typing units
Elm
2
star
15

wai-feature-flags

Feature flag support for WAI applications.
HTML
2
star
16

virgilio-sweet

Sweet macro's for Virgilio.
JavaScript
2
star
17

old-dotfiles

My Dotfiles
Objective-C
1
star
18

html-typed

Experiment
Elm
1
star
19

shortcut

A strategical card-placing game
JavaScript
1
star
20

interop

Haskell
1
star
21

mksite

Tools for static site generation
Nix
1
star
22

elm.vim

Vim Script
1
star
23

blogpost-drag-and-drop

A blog post on drag & drop
Elm
1
star
24

bugsnag-hs

A Bugsnag client for Haskell
Haskell
1
star
25

elm-talk

Elm
1
star
26

elm-editor-tools

Haskell
1
star
27

junit-xml

Generate JUnit style XML reports in Haskell
Haskell
1
star
28

freeze-task

Memoize a task to ensure it's computation is only executed once.
JavaScript
1
star
29

elm-pair-promo

Proposal for an Elm development tool
CSS
1
star