Elm mode for Emacs.
elm-make
elm-repl
elm-reactor
elm-package
elm-mode
indentation is based on cycling: every time you insert a new line there will be one or more indentation levels available for you to choose from. The exact number is printed in the minibuffer either as Sole indentation
or Indent cycle (n)...
where n
is the number of available indentations to choose from. If the automatic indentation level was not the one you expected simply hit TAB
to cycle through the list (note that hitting any other key will cancel the cycle).
There is also a simpler indentation mode, Elm Indent Simple
which doesn't try to be as smart as the default one. The benefit of this mode is that it works a little more similarly to how more conventional editors handle indentation: indent one step forward by pressing TAB
, one step backward with S-TAB
.
It tries to be a little smart, however, and guess the easiest to determine indentation levels.
You can enable it by setting a variable, elm-mode-indent-mode
to #'elm-indent-simple-mode
, for example by doing this:
(setq elm-mode-hook '(elm-indent-simple-mode))
This package requires Emacs 25.1 or later.
You can install elm-mode
from the package in MELPA. This is by far the most straightforward and recommended installation method.
Add this repo to your load-path and (require 'elm-mode)
. Ensure that you have installed all the dependencies listed in the Package-Requires
header of elm-mode.el
.
The following bindings are available in elm-mode
:
TAGS file generation requires that the UNIX find
, egrep
commands and the Emacs etags
command be available in your path.
Set or customize elm-tags-on-save
to t
to generate a new TAGS file for the current project on every save.
Set or customize elm-tags-exclude-elm-stuff
to nil
to include source files inside elm-stuff
directories when generating the TAGS file.
haskell-mode
). Keybinding Description C-c C-n Preview the current buffer in a browser. C-u C-c C-n Preview the current buffer in a browser in debug mode. C-c C-m Preview the main elm file in a browser. C-u C-c C-m Preview the main elm file in a browser in debug mode. Keybinding Description C-c C-d View a function's documentation in a browser. C-c C-i Import a module from one of the dependencies. C-c C-s Sort the imports in the current file. C-c M-k Open the package catalog. C-u C-c M-k Open the package catalog, refreshing the package list first.
The following bindings are available in the package list buffer:
Keybinding Description g Refresh package list. n Next package. p Previous package. v View package in browser. m Mark package for installation. i Mark package for installation. u Unmark package. x Install marked packages.Set or customize elm-sort-imports-on-save
to t
to apply elm-sort-imports
on the current buffer on every save.
To obtain completion, code navigation and other niceties, use elm-language-server and an LSP package. eglot is a lightweight LSP front-end package for Emacs, and has built-in support for elm-language-server
. Some users might prefer the rather larger and more opinionated lsp-mode.
The following functionality requires elm-format to be installed. elm-format
does not come with the Elm installer so you will have to install it manually.
Enable elm-format-on-save-mode
to apply elm-format
on the current buffer on every save. You might like to add it to your elm-mode-hook
:
(add-hook 'elm-mode-hook 'elm-format-on-save-mode)
Alternatively, you can enable it on a per-project basis by including an entry like the following in your .dir-locals.el
:
(elm-mode (mode . elm-format-on-save))
The following functionality requires elm-test to be installed. elm-test
does not come with the Elm installer so you will have to install it manually.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4