elm-formatis still in alpha. If you run into any problems, please report them.The format produced by elm-format may change significantly before the 1.0.0 release. If this will cause problems for you, please refrain from using elm-format during the alpha- and beta-test periods.
elm-format formats Elm source code according to a standard set of rules. It is inspired by the popular gofmt.
The benefits of elm-format:
- It makes code easier to write, because you never have to worry about minor formatting concerns while powering out new code.
- It makes code easier to read, because there are no longer distracting minor stylistic differences between different code bases. As such, your brain can map more efficiently from source to mental model.
- It makes code easier to maintain, because you can no longer have diffs related only to formatting; every diff necessarily involves a material change.
- It saves your team time debating how to format things, because there is a standard tool that formats everything the same way.
elm-format Main.elm # Format a single file
elm-format Main.elm --yes # Overwrite the file without prompting
elm-format src/ # Format all *.elm files in a directory
elm-format --stdin # Format input from stdin and write to stdout
elm-format --stdin --output Main.elm # Format input from stdin and write to file
elm-format --help # See other command line options
elm-formatis still in alpha. If you run into any problems, please report them.The format produced by elm-format may change significantly before the 1.0.0 release. If this will cause problems for you, please refrain from using elm-format during the alpha- and beta-test periods.
You will need to download the version appropriate for your OS, unzip it, and place elm-format or elm-format.exe (windows) on your PATH. Simpler installation options will be available once there is a stable release of elm-format.
If you need PGP signatures, see the releases page.
(To upgrade your Elm 0.17 project to Elm 0.18, see the Elm 0.18 upgrade guide.)
Find your editor in the table below. The recommended plugin for each editor is indicated with 🏆 (trophy emoji).
| Editor | Plugin | Installation | Formatting | Format on save | Configuration | Error handling |
|---|---|---|---|---|---|---|
| Atom | 🏆 atom-elm-format | ✅ 2 steps | ✅ | ✅ | ||
| atom-beautify | ✅ | ✅ | ✅ | |||
| Light Table | 🏆 elm-light | ✅ | ✅ | |||
| Vim | 🏆 elm-vim | ❌ 6 steps | ✅ | ✅ | ❌ no error message | |
| Emacs | 🏆 elm-mode | ❌ 4 steps | ✅ | ✅ | ||
| Visual Studio Code | 🏆 Elm Language Support | ❔ TBD | ❌ | ❔ TBD | ❔ TBD | |
| VSCode Elm Format | ❔ TBD | ❔ TBD | ❔ TBD | |||
| Sublime Text | 🏆 Elm Language Support | ✅ 2 steps | ❔ TBD | ✅ | ❔ TBD | ❔ TBD |
| JetBrains (WebStorm, etc) | 🏆 Elm Language Plugin | ❔ TBD | ✅ | ❔ TBD | ❔ TBD |
If you can simplify or improve the installation instructions or add instructions for another editor, please make a pull request.
The default behavior of elm-format-approved plugins is to format Elm files on save.
Install elm-format
Install atom-elm-format
apm install elm-format
or use the Atom package manager in Atom's settings
Install elm-format
Install atom-beautify
apm install atom-beautify
or use the Atom package manager in Atom's settings
- Use
^⌥B(CTRL-ALT-B) to format a file
- Install elm-format
- Install the elm-light plugin using the Light Table plugin manager
- To format on save, edit your user keymap by performing the following:
- Click File -> Settings -> User Keymap to open the user keymap.
- Copy the following line and paste it into your keymap. Anywhere is fine as long as it is whithin the outer brackets. Ensure to save the file.
[:editor.elm"ctrl-s":save:elm-format:elm.lint]- Search for "App: Reload keymaps" in the Commands Window to apply the changes (or restart LightTable).
Install elm-format
If your Emacs has
package.el(which is automatically the case for Emacs >= 24), you can installelm-modefrom the package in MELPA:Ensure that you have added the MELPA source in your
~/.emacs.d/init.el:(require'package) (add-to-list 'package-archives '("melpa"."http://melpa.org/packages/"))
Install elm-mode (official instructions): Use
M-x list-packagesand chooseelm-mode.
Set
elm-format-on-savetotto apply elm-format on the current buffer on every save. (The setting can be changed viaM-x customize-variable elm-format-on-save. Click buttonToggleto change the setting and buttonStateto activate the setting.)
Install elm-format
Install vim-plug (official instructions)
Download vim-plug:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vimMake sure there is a section like this in your
~/.vimrc:callplug#begin('~/.vim/plugged') " ... any active pluginscallplug#end()
Install elm-vim (official instructions)
- Add
Plug 'elmcast/elm-vim'to theplug#beginplugin section in your~/.vimrc - Start
vimand run:PlugInstall
- Add
Add the following to your
~/.vimrc:
let g:elm_format_autosave = 1
Install elm-format
Install Elm tools for VSCode
ext install elm
SHIFT-ALT-F will format the current file
Install elm-format
Install VSCode Elm Format
ext install elm-format
You can run elm-format by using the
Elm: FormatcommandYou can also run elm-format whenever you save the file by adding
formatOnSave: trueoption to your settings.json file.
- Install elm-format
- Install the Elm Language Support package.
This is for WebStorm and other JetBrains IDEs.
- Install elm-format
- Install the Elm Language Plugin package.
- Install the File Watchers plugin (available in the plugin repository)
- Add a file watcher for .elm files with the settings as shown here.
brew install haskell-stack
git clone https://github.com/avh4/elm-format.git
cd elm-format
stack setup
stack build
stack install
~/.local/bin/elm-format-0.18 --helpbrew install shellcheck
./tests/run-tests.sh