elm mode for emacs
Move everything to one file
Change indent binding


browse  log 



You can also use your local clone with git send-email.

#elmo.el - Edit Elm source code in emacs

This is a simple major mode for editing Elm in emacs. It is only compatible with elm version > 0.19.



elmo relies a lot on project.el available in newer versions of emacs. Some integrations elmo provides are:

  • Find root in a project, depends on git for now. Use git init if it cannot find root.
  • Add patterns you want to ignore to .gitignore, as usual.
  • Using project-compile, trigger elm make in root folder.
  • Ignores elm-stuff by default, so project-find-regexp shows less garbage.

Also you are free to bind project-shell, project-find-regexp, project-find-file and friends.

#Integration with Elm tooling

Binding Name
C-c C-z elm-repl
C-c C-c elm-make
C-c C-r elm-reactor


elmo tries to be smart about indentation. However, elm is a pretty difficult language to indent, since it is whitespace sensitive. elmo offers indentation where it is easy to determine, but, you can still adjust with tab and backtab, like in conventional editors.


elmo provides some options for customization, however there are not too many yet.

  • elm-indent-offset: Defaults to 4.
  • elm-compile-command: Defaults to elm make src/Main.elm