Releases: avh4/elm-format
0.8.7
Small improvements and fixed npm installer for Windows
Version 0.8.6 was not widely announced because of an issue with the npm installer on Windows,
so check the 0.8.6 release notes as well. Below are the additional changes in 0.8.7.
New features:
case ... then
is now auto-corrected tocase ... of
=>
is now auto-corrected to->
Bug fixes:
- Top-level declarations named "infix" no longer make files unprocessable
- The npm installer should now work correctly on Windows (was broken for 0.8.6)
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- @kutyel for lenient parsing additions
- @emmabastas for the initial draft of test coverage scripts
- @jfmengels for continued thoughtful issue discussion across the Elm devtools community (only partially related to elm-format, but thank you!)
- @8n8 for code cleanup help
- Lamdera for providing CI runners to build the MacOS ARM64 release binaries
0.8.7-rc.1
0.8.7-rc.1
0.8.6
Much, much faster; Many, many contributors
Thanks to the contributions of many (see below), elm-format is now much faster.
(Testers of the pre-release saw an 11x speedup on MacOS ARM, and a 4x speedup on other platforms.)
New features:
- File are now processed in parallel
Bug fixes:
module exposing
listings containing comments no longer add extra leading spaces- Redundant import aliases (when the alias is the same as the module name) are now removed
Other changes:
- Native binaries are now provided for MacOS ARM64 (previous versions required Rosetta)
- Native (statically-linked) binaries are now provided for Linux ARM64 (aarch64)
- The npm installer now has zero dependencies
- Performance optimization, making use of Elm 0.19's parser, thanks to @emmabastas's contributions via Google Summer of Code
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- @emmabastas for refactoring the parser internals to integrate Elm 0.19's compiler's parser
- @lydell for processing files in parallel
- @lydell for the new dependency-free npm installer script
- @mdevlamynck for the
exposing
listings bug fix - @tfausak for linux-aarch64 build script updates
- @supermario for mac-arm64 build script updates
- Lamdera for providing CI runners to build the MacOS ARM64 release binaries
- Elm community members for testing the new binaries and npm packages
- ... and anyone who's contributed to cross-compilation support in ghc or nix in the past two years
0.8.6-rc.1
0.8.6-rc.1
0.8.5
Binaries for Alpine Linux and Mac ARM64
Feature changes:
- Detailed error messages for syntax errors have been removed. Use
elm make
to see a detailed error if elm-format fails.
New features:
- In
module
andimport
lines,exposing
is automatically added if missing
Other changes:
- The npm installer now provides a (Rosetta) binary for Mac ARM64
- Linux binaries are now statically linked (should now work on alpine linux and other systems without glibc-2.27)
- Removed
--upgrade
(now use elm-refactor instead)
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- @kutyel for improvements to lenient parsing
0.8.5-rc1
0.8.4
Bug fixes and small improvements
New features:
- newlines in tuple types are now preserved
- newlines in type constructor application are now preserved
Bug fixes:
- negative hex int literals are now handled correctly
- in doc comments, special characters in link text are now handled more correctly
- in doc comments, non-Elm code blocks are no longer elm-formatted
- in doc comments, inline code containing backticks is now escaped correctly
- in doc comments, relative links with text matching the relative URL are now handled correctly
Other changes:
- dropped support for 32-bit Windows (Windows CI platforms are no longer supporting it)
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- @rlefevre for the autolinks fix
- @jasoncarr0, @woochica, and @mcnuttandrew for fixes to the installation instructions
- @chshersh for his "GitHub Actions for Haskell" template
0.8.3
Performance improvements
Thanks to @folkertdev for diagnosing and contributing the fix for a long-standing performance issue
where elm-format
would take exceptionally long (and sometimes crash) on files contianing large expressions
such as long lists or many other AST nodes with many children.
Other than the performance improvements, there should be no other noticable changes from elm-format
0.8.2.
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- As noted above, @folkertdev for the performance improvment
- @razzeee and @andys8 for help updating the Windows release build
0.8.2
Simpler editor integration
Two small improvements should make integration with code editors smoother with elm-format
0.8.2.
When installed with npm
, elm-format
startup time has been reduced by 70% (roughly 150ms).
And elm-format
will now assume it should work in Elm 0.19 mode if autodetection of your Elm version fails.
If you still need to work with Elm 0.18 code, you must make sure that either elm-format
is run from the directory containing your elm-package.json
file (and there must not be a elm.json
file in that directory), or elm-format
must be invoked with the --elm-version=0.18
option.
exposing (..)
The feature of automatically expanding exposing (..)
in module
lines has been removed.
While exposing everything in a module is an anti-pattern for production code,
it can be useful for rapid development sketches when the interfaces of your modules are not important.
To replace the old expansion behavior, elm-format
now allows module
lines without an exposing
clause. Such lines will have the exposing
automatically generated using the same logic that was previously used to expand exposing (..)
.
Other changes
elm-format
0.8.2 also contains several bug fixes and other small changes.
See the CHANGELOG for details.
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- @mdevlamynck for implementing the fix for removing invalid
(..)
in@docs
lines - @andys8 and @BendingBender for debugging slow startup times when installed via npm
- @omnibs for help updating the parser
0.8.1
Autodetecting your Elm version
Starting in elm-format
0.8.1, there is now only one official binary for each platform
(previously there was a seperate binary for Elm 0.18 and Elm 0.19).
elm-format
now will auto-detect your Elm version using the following rules:
- if
elm-package.json
exists in the current directory, format in Elm 0.18 mode - if
elm.json
exists in the current directory, format in Elm 0.19 mode
If you need to run elm-format
from a working directory that does not contain such a file
(or if you need to use elm-format
in Elm 0.17 mode),
use the --elm-version=...
command line argument to disable the autodetection.
Other changes
elm-format
0.8.1 also contains several bug fixes for elm-format
0.8.0.
See the CHANGELOG for details.
Install
npm install -g elm-format
or download from the release page.
Thanks to ...
- @andys8 for contributing the lenient import line parser