1 # esformatter changelog
5 - fix comment alignment if surrounded by whitespaces. closes #297
6 - improve ObjectExpression hook logic to handle values surrounded by parenthesis. fixes #295
7 - fix setOptions behavior to allow user to override plugin default settings. fixes #293
11 - add support for the pipe option on the config file, allowing user to pipe other CLI tools. closes #168
12 - add support for ES6 classes. closes #286
13 - add support for ES6 default params. closes #285
14 - add support for ES6 arrow functions. closes #255
15 - change comment indentation behavior to match next/prev code block based on context. fixes #209. fixes #270.
16 - extract helpers from lib/indent.js into rocambole-indent. closes #277
17 - fixes SwitchCase indentation range. closes #290
18 - ignore shebang by default. closes #284
19 - add setting to limit line breaks and white spaces around BreakKeyword. fixes #213
20 - limit spaces before function name. closes #283
21 - make sure plugins.setOptions is called before plugins.stringBefore. fixes #288
22 - replace lib/lineBreak.js with rocambole-linebreak. closes #279
23 - replace lib/whiteSpace.js with rocambole-whitespace. closes #278
24 - support in place edits. fixes #275
25 - use locally installed esformatter version if available. closes #190
27 ## v0.5.1 (2015-03-17)
29 - make it work with esprima@2.1 AST!
30 - ConditionalExpression: indent even if consequent is on the same line as the test
31 - Fix indent for logical expression as argument of return statement
32 - Fix indent for multi-var declaration with logical expression
33 - ForStatement improvements
34 - IfStatement: Fix multi-line test with comments
35 - ObjectExpression: Indent multi-line binary and logical expression values
36 - Update jQuery preset to fix single-line object expression spacing
37 - Update jQuery preset to make use of new IIFE settings
38 - fix DoWhileStatement indent. closes #256
39 - improve CallExpression hook to handle a few edge cases and add option to limit br/ws around opening/closing parentheses. closes #267
40 - improve getter/setter behavior on ObjectExpression. fixes #265
41 - indent NewExpression arguments. fixes #254
42 - make sure we don't loop over same CatchClause twice. fixes #264
44 ## v0.5.0 (2015-02-26)
46 - add support for br/ws around IIFEOpeningParentheses and IIFEClosingParentheses and keep spaces around CallExpression to avoid conflicts. closes #223. closes #250.
47 - don't remove line breaks before FunctionExpression by default and handle an edge case for array indentation if it is a chained member expression argument. fixes #202
48 - drop ArgumentList exceptions (used previously by jQuery preset)
49 - fix FunctionExpression: Handle two special cases for TopLevelFunctionBlock
50 - fix SwitchCase indent if missing semicolon after break. fixes #225
51 - fix array indentation for cases where closing bracket is on the same line. simplify ObjectExpression indentation logic while also fixing how it works inside arrays. fixes #224. fixes #239.
52 - fix indent edges for chained MemberExpression. fixes #240
53 - improve IfStatement.test indentation. closes #222
54 - indent BinaryExpression & LogicalExpression if inside VariableDeclaration, CallExpression or AssignmentExpression. fixes #212
55 - indent support for ParameterList and enable it by default. closes #231
56 - make sure plugins are loaded/registered before `plugins.stringBefore` is called and expose `unregisterAll`. fixes #245. closes #246.
57 - only indent if there is a line break before/between arguments. fixes #238
58 - support getters/setters in ObjectExpression
59 - update jQuery preset to use CatchParameterList whiteSpace setting
60 - update jQuery preset to tolerate single line objects
61 - update rocambole to v0.5 and change the BinaryExpression test to match esprima@2.0 behavior (no EmptyStatement between ExpressionStatements). see #192
63 ## v0.4.3 (2014-10-13)
65 - fix error related to multiple `plugin.register` calls. (#218)
67 ## v0.4.2 (2014-09-08)
69 - fix `else if` consequent with no braces. closes #196
70 - fix indent of nested if braces before comments. closes #197
71 - fix CatchClause indent and add settings for `FinallyKeyword` and `TryKeyword`. closes #203
72 - indent `LogicalExpression` if it's the `VariableDeclaration.init`.
74 ## v0.4.1 (2014-07-09)
76 - fix comma and white spaces around object property values (#191).
77 - fix ObjectExpression indent edges (#193).
79 ## v0.4.0 (2014-07-06)
81 - add `transformBefore` hook for plugins and `transformAfter` to keep API consistent. closes #187
82 - add option to add/remove trailing empty lines in the file (EOF). closes #111.
83 - add options to control line breaks inside ArrayExpressions. closes #129
84 - add support for multiple indent levels (closes #179, closes #106).
85 - add double indent for `IfStatementConditional` on the jQuery preset (closes #150)
86 - add support for line breaks before/after `PropertyName` and `PropertyValue` (closes #184)
87 - support plugins option on the CLI. closes #182
88 - fix `MemberExpression` indent behavior. (meta bug #181)
89 - fix indent end edge for `FunctionExpression` inside `MemberExpression`. closes #152
90 - change indent rules for `AssignmentExpression` and `ConditionalExpression` to match jQuery preset needs. closes #149
91 - convert comma-first objects to comma-last (closes #175)
92 - improve `CatchClause` and `TryStatement` line break and white space handling. closes #128
93 - improve `ReturnStatement` and `CallExpression` indent behavior.
94 - rename `ChainedMemberExpression` to `MemberExpression` on the config file.
96 ## v0.3.2 (2014-06-23)
98 - fix issue with sparse arrays. see millermedeiros/rocambole#15
99 - fix Params comma handling and update rocambole to 0.3.4 to fix BlockComment. closes #139
100 - fix indent for objects inside arrays. closes #142
101 - fix white space inside expression statement with parens. closes #155
102 - change IfStatement indent edges to avoid indenting comments that are just before `} else`. closes #123
103 - fix comments inside ObjectExpression. closes #166
106 ## v0.3.1 (2014-06-23)
108 - avoid merging undefined config on `esformatter.rc`.
109 - make sure `esformatter.rc` doesn't load config file if user provides
110 a 'preset' or if 'root == true' to match CLI behavior.
113 ## v0.3.0 (2014-06-20)
115 - expose ALL the things!! exposed a few methods related to line break, white
116 space and indentation; also flattened the directory structure to make it
117 easier for plugin authors to reuse esformatter internal methods when needed.
120 ## v0.2.0 (2014-06-16)
122 - add plugin support.
123 - refactored the way indentation is handled (and changed default settings
124 related to indentation).
125 - expose the `rc` method.
126 - fix rc merge/search logic to avoid problems on windows.
128 - proper indent edges for `AssignmentExpression`
129 - indent `CallExpression` by default
130 - make sure `_br.limit` doesn't remove LineBreak if previous token is
131 a comment (fixes a few bugs).
132 - fix comments inside empty catch block (avoid removing line breaks).
135 ## v0.1.1 (2014-05-12)
137 - fix error when input is an empty file.
139 - add spaces inside ForStatement and WhileStatement parenthesis on jQuery
143 ## v0.1.0 (2014-04-15)
145 - major refactor on the code structure and major changes to the default tool
147 - changed some rules so the tool is less opinionated.
148 - change formatter logic to support ranges on the configuration file.
149 - avoid removing line breaks during the formatting process, increasing the
150 flexibility of the formatting rules.
153 ## notes about v0.0.1 (2012-12-06) till v0.0.16 (2014-02-24)
155 The formatter had stricter rules and was way less flexible before v0.1.0;
157 Lots of small improvements between each version. Behavior was still in flux and
158 each version was breaking backwards compatibility.
160 We considered v0.0.15 (2013-12-18) to be "stable" for most common cases, most
161 of bugs found in the following months after release was on edge-cases. We
162 decided to make a big refactor to increase the formatter flexibility and to be
163 less aggressive on the changes.