A major mode for Emacs providing comprehensive support for the Elm programming language.
elm-mode is an Emacs major mode that provides comprehensive support for the Elm programming language. It offers syntax highlighting, intelligent indentation, and deep integration with Elm's core tools like elm-make, elm-repl, and elm-package, along with external tools like elm-format and elm-test. The mode streamlines Elm development within the Emacs editor by automating common tasks and providing a cohesive workflow.
Elm developers who use Emacs as their primary editor and want a tailored development environment with full Elm toolchain integration.
Developers choose elm-mode for its deep integration with the Elm ecosystem, intelligent editing features like indentation cycling, and the ability to manage the entire Elm development workflow—from coding and formatting to testing and package management—directly within Emacs.
Elm mode for emacs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly integrates core Elm tools like elm-make, elm-repl, and elm-package, allowing compilation, REPL interaction, and package management directly from Emacs with dedicated keybindings.
Offers smart indentation with cycling options and a simpler mode, providing flexible code formatting that adapts to user preferences, as detailed in the indentation section.
Integrates with elm-format for automatic code formatting and elm-test for running test suites, streamlining development workflows through configurable on-save modes and keybindings.
Includes an interactive package catalog for browsing and installing Elm packages, with features like marking and installing dependencies without leaving Emacs.
Critical features like formatting and testing rely on manually installed external tools (elm-format, elm-test), which adds setup overhead and potential version management issues.
Code completion and advanced navigation require setting up elm-language-server and an LSP package like eglot or lsp-mode separately, increasing complexity for users seeking plug-and-play features.
Tied exclusively to Emacs, making it irrelevant for developers using other editors and creating a learning curve for those unfamiliar with Emacs keybindings and configuration.