View Source Changelog
main
main
v0-8-5
v0.8.5
fixes
Fixes
- Fixed exception when encountering non-arrowed case statements ala
case foo, do: unquote(quoted)
(#69, h/t @brettinternet, nice)
v0-8-4
v0.8.4
fixes-1
Fixes
- Timex related fixes (#66):
- Rewrite
Timex.now/1
toDateTime.now!/1
instead ofDateTime.utc_now/1
- Only rewrite
Timex.today/0
, don't changeTimex.today/1
- Rewrite
v0-8-3
v0.8.3
improvements
Improvements
- DateTime rewrites (#62, ht @milmazz)
DateTime.compare
=>DateTime.{before/after}
(elixir >= 1.15)Timex.now
=>DateTime.utc_now
Timex.today
=>Date.utc_today
fixes-2
Fixes
- Pipes: add
!=
,!==
,===
,and
, andor
to list of valid infix operators (#64)
v0-8-2
v0.8.2
fixes-3
Fixes
- Pipes always de-sugars keyword lists when unpiping them (#60)
v0-8-1
v0.8.1
fixes-4
Fixes
- ModuleDirectives doesn't mistake variables for directives (#57, h/t @leandrocp)
v0-8-0
v0.8.0
improvements-bug-fix
Improvements (Bug Fix!?)
- ModuleDirectives no longer throws comments around a file when hoisting directives up (#53)
v0-7-14
v0.7.14
improvements-1
Improvements
- rewrite
Logger.warn/1,2
toLogger.warning/1,2
due to Elixir 1.15 deprecation
v0-7-13
v0.7.13
fixes-5
Fixes
- don't unpipe single-piped
unquote
expressions (h/t @elliottneilclark)
v0-7-12
v0.7.12
fixes-6
Fixes
- fix 0-arity paren removal on metaprogramming creating uncompilable code (h/t @simonprev)
v0-7-11
v0.7.11
fixes-7
Fixes
- fix crash from
mix style
running plugins as part of formatting (no longer runs formatter plugins)
improvements-2
Improvements
- single-quote charlists are rewritten to use the
~c
sigil ('foo'
->~c'foo'
) (h/t @fhunleth) mix style
warns the user that Styler is primarily meant to be used as a plugin
v0-7-10
v0.7.10
fixes-8
Fixes
- fix crash when encountering single-quote charlists (h/t @fhunleth)
improvements-3
Improvements
- single-quote charlists are rewritten to use the
~c
sigil ('foo'
->~c'foo'
) - when encountering
_ = bar ->
, replace it withbar ->
v0-7-9
v0.7.9
fixes-9
Fixes
- Fix a toggle state resulting from (ahem, nonsense) code like
_ = bar ->
encountering ParameterPatternMatching style
v0-7-8
v0.7.8
fixes-10
Fixes
- Fix crash trying to remove 0-arity parens from metaprogramming ala
def unquote(foo)()
v0-7-7
v0.7.7
improvements-4
Improvements
- Rewrite
Enum.into/2,3
intoMap.new/1,2
when the collectable is%{}
orMap.new/0
v0-7-6
v0.7.6
fixes-11
Fixes
- Fix crash when single pipe had inner defs (h/t @michallepicki)
v0-7-5
v0.7.5
fixes-12
Fixes
- Fix bug from
ParameterPatternMatching
implementation that re-ordered pattern matching incond do
->
clauses
v0-7-4
v0.7.4
features
Features
- Implement
Credo.Check.Readability.PreferImplicitTry
- Implement
Credo.Check.Consistency.ParameterPatternMatching
fordef|defp|fn|case
v0-7-3
v0.7.3
features-1
Features
- Remove parens from 0-arity function definitions (
Credo.Check.Readability.ParenthesesOnZeroArityDefs
)
v0-7-2
v0.7.2
features-2
Features
- Rewrite
case ... true -> ...; _ -> ...
toif
statements as well
v0-7-1
v0.7.1
features-3
Features
- Rewrite
case ... true / else ->
to beif
statements
v0-7-0
v0.7.0
features-4
Features
Styler.Style.Simple
:- Optimize
Enum.reverse(foo) ++ bar
toEnum.reverse(foo, bar)
- Optimize
Styler.Style.Pipes
:- Rewrite
|> (& ...).()
to|> then(& ...)
(Credo.Check.Readability.PipeIntoAnonymousFunctions
) - Add parens to 1-arity pipe functions (
Credo.Check.Readability.OneArityFunctionInPipe
) - Optimize
a |> Enum.reverse() |> Enum.concat(enum)
toEnum.reverse(a, enum)
- Rewrite
v0-6-1
v0.6.1
improvements-5
Improvements
- Better error handling:
mix format
will still format files if a style fails
fixes-13
Fixes
mix style
: only run on.ex
and.exs
filesModuleDirectives
: now expandsalias __MODULE__.{A, B}
(h/t @adriankumpf)
v0-6-0
v0.6.0
features-5
Features
mix style
: brought back to life for folks who want to incrementally introduce Styler
fixes-14
Fixes
Styler.Style.Pipes
:- include
x in y
and^foo
(for ecto) as a valid pipe starts - work even harder to keep rewrites on one line
- include
v0-5-2
v0.5.2
fixes-15
Fixes
ModuleDirectives
: handle dynamic module namesPipes
: includeEcto.Query.from
andQuery.from
as valid pipe starts
v0-5-1
v0.5.1
improvements-6
Improvements
- Sped up styling just a little bit
v0-5-0
v0.5.0
improvements-7
Improvements
Styler
now implementsMix.Task.Format
, meaning it is now an Elixir formatter plugin. See the README for new installation & usage instructions
breaking-change-wooo
Breaking Change! Wooo!
- the
mix style
task has been removed
v0-4-1
v0.4.1
improvements-8
Improvements
Pipes
rewrites|> Enum.into(%{}[, mapper])
andEnum.into(Map.new()[, mapper])
toMap.new/1,2
calls
v0-4-0
v0.4.0
improvements-9
Improvements
Pipes
rewrites some two-step processes into one, fixing these credo issues in pipe chains:Credo.Check.Refactor.FilterCount
Credo.Check.Refactor.MapJoin
Credo.Check.Refactor.MapInto
fixes-16
Fixes
ModuleDirectives
handles even weirder places to hide your aliases (anonymous functions, in this case)Pipes
tries even harder to keep single-pipe rewrites of invocations on one line
v0-3-1
v0.3.1
fixes-17
Fixes
Pipes
- fixed omission of
==
as a valid pipe start operator (h/t @peake100 for the issue) - fixed rewrite of
a |> b
, whereb
was invoked without parenthesis
- fixed omission of
v0-3-0
v0.3.0
improvements-10
Improvements
- Enabled
Defs
style and overhauled it to properly handles comments - Optimized and tweaked
ModuleDirectives
style- Now culls newlines between "groups" of the same directive
- sorts
@behaviour
directives - orders directives within non defmodule contexts (eg, a
def do
) if there's at least onealias|require|use|import
fixes-18
Fixes
Pipes
will try to keep single-pipe rewrites on one line
v0-2-0
v0.2.0
improvements-11
Improvements
- Added
ModuleDirectives
style- Note that this is potentially destructive in some rare cases. See moduledoc for more.
- This supersedes the
Aliases
style, which has been removed.
mix style -
reads and writes to stdin/stdout
fixes-19
Fixes
Pipes
style is now aware ofunless
blocks
v0-1-1
v0.1.1
improvements-12
Improvements
- Lots of README tweaking =)
- Optimized some Zipper operations
- Added
Simple
style, replacing the following Credo rule:Credo.Check.Readability.LargeNumbers
fixes-20
Fixes
- Exceptions while parsing code now appropriately render filename rather than
nofile:xx
- Fixed opaque
Zipper.path()
typespec implementation mismatches (thanks @sega-yarkin) - Made
ex_doc
dev only, removing it as a dependency for users of Styler
v0-1-0
v0.1.0
improvements-13
Improvements
- Initial release of Styler
- Added
Aliases
style, replacing the following Credo rules:Credo.Check.Readability.AliasOrder
Credo.Check.Readability.MultiAlias
Credo.Check.Readability.UnnecessaryAliasExpansion
- Added
Pipes
style, replacing the following Credo rules:Credo.Check.Readability.BlockPipe
Credo.Check.Readability.SinglePipe
Credo.Check.Refactor.PipeChainStart
- Added
Defs
style (currently disabled by default)