Releases: fsprojects/fantomas
Releases · fsprojects/fantomas
Release October
Release September
August Release
4.5.2 - 08/2021
- Fix Dropped comment with function with type parameter. #1861
- Fix Comment dropped in a multi-option match. #1855
- Fix StackoverflowException when formatted long triple-quoted strings. #1837
- Fix Comment removed in match. #1677
Special thanks to @kentcb, @pbiggar, @texastoland and @OkkeHendriks.
Late July Release
4.5.1 - 07/2021
- Fix StackOverflow exceptions when collecting ColMultilineItem list. #1839
- Honor .fantomasignore file when processing a folder. #1834
- Fix Overly indented members on a record type with accessibility modifier. #1824
- Fix MultiLineLambdaClosingNewline not respected with function keyword. #1823
- Fix Comment is lost at the end of a match. #1822
July Release
4.5.0 "Miasma" - 07/2021
- Feature Always place bar in front of discriminated union. #1750
- Feature Support multiple files/dirs as command-line arguments. #1696
- Feature Disable empty line between mutually recursive type. #1658
- Feature BlankLinesAroundNestedMultilineExpressions. #1587
- Initial support of KeepIndentInBranch. #1361
- Improve: Collect empty define block as single trivia. #1528
- Improve: Refactor ASTTransformer. #1497
- Improve: replace genTypeByLookup with Trivia. #594
- Update to FCS 39 #1479
- Fix Space between identifier and then is lost. #1816
- Fix KeepIndentInBranch causing offside error in if condition. #1812
- Fix Indentation warnings for multiline match expression. #1774
- Fix Extra indentation on match-case block. #1234
- Fix Fantomas introduces meaningless match block. #1806
- Fix Lazy causes indentation to produce invalid F#. #1805
- Fix Nested Fluent API produces wrong code: misses indentation. #1804
- Fix Tuple should be consider short branch in KeepIndentInBranch setting. #1800
- Fix Fantomas adds "of" to a union case when it is seemingly too long. #1796
- Fix Function application in if expression should remain on single line. #1795
- Fix Conditional code is not printed. #1794
- Fix Records in list in a pattern match always have a semicolon. #1793
- Fix parenthesis expression in then should further indent inner expression. #1777
- Fix Wild cards in lambda. #1789
- Fix Soundness regression in 4.5.0-beta-001. Nested lambdas are stripped. #1782
- Fix KeepIndentInBranch not respected when returning short function application. #1779
- Fix Hash directive not printed above recursive binding. #1776
- Fix Fantomas adds space before colon when SpaceBeforeColon is false. #1773
- Fix Long return expression not formatted multiline. #1771
- Fix Add support for LibraryOnlyStaticOptimization. #1769
- Fix fsharp_keep_indent_in_branch not respected for multiline infix expression. #1768
- Fix Inline lambda in argument list causes problems for argument chopping and lambda alignment. #1028
- Fix Difference in behavior between signature and implementation files for single case DU. #973
- Fix Concatenation of multi-line """ strings mis-indented. #639
- Fix Comment after arrow lost with KeepIndentInBranch. #1759
- Fix Multiline if/then/else in infix expression. #1757
- Fix Newline and comment trivia are mixed up. #1468
- Fix Inline lambda in argument list causes problems for argument chopping and lambda alignment. #1028
- Fix Difference in behavior between signature and implementation files for single case DU. #973
- Fix Concatenation of multi-line """ strings mis-indented. #639
- Fix Trivia before SynPat.Paren. #1753
- Fix Idempotency problem when trailing comment is present. #1538
- Fix Offside error after formatting with MultiLineLambdaClosingNewline. #1741
- Fix Pipe character missing in single-case try/with. #1571
- Fix Multiline if condition in KeepIndentInBranch leads to warnings. #1729
- Fix KeepIndentInBranch not respected for values. #1728
- Fix KeepIndentInBranch not respected. #1717
- Fix Bad interaction between KeepIndentInBranch and MultiLambdaClosingNewLine. #1715
- Fix KeepIndentInBranch not being respected. #1714
- Fix Breaking method chain in the middle of an if statement causes offside error. #1712
- Fix Offside error when a comment appears before a match statement in pipeline. #1711
- Fix Line comment after short pattern match clause causes additional parenthesis. #1721
- Fix Appending two lists with @ fails. #1719
- Fix Leading block comment makes type multiline. #1718
- Fix List concat chain using operators fails to format. #1188
- Fix Unexpected newline after inner let binding. #1709
- Fix Currying a pair gets spread over multiple lines. #1700
- Fix Additional parentheses are introduced when match is piped. #1698
- Fix \t in string replaced by ASCII 9. #1695
- Fix Idempotency problem with nested else if. #1648
- Fix Idempotency problem with ifdef in a function. #1646
- Fix string interpolation part crossing max line length introduces new line and lots of whitespace. #1511
- Fix Splitting generic type parameters over multiple lines sometimes puts the break in an invalid place. #1687
- Fix Idempotency problem related to comments in with. #1686
- Fix Upcast requires a line break but is not given one. #1685
- Fix Idempotency problem when trying to format a type with method chaining in it. #1681
- Fix Line comments after null value used as argument in function call are removed. #1676
- Fix Idempotency problem when trying to format a type with method chaining in it. #1681
- Fix Comment after constant got moved to the next line. #1671
- Fix Idempotency problem when ending with a comment. #1649
- Fix end_of_line not respecting when file has ifdef. #1673
- Fix Attributes in a recursive type get misplaced. #1668
- Fix alternative_long_member_definitions docs. #1666
- Fix Stack overflow on macOS for long pipelines. #1453
- Fix Comment inside empty Elmish children is lost. #1179
- Fix Long .Setup line in Moq code results in broken indentation. #1662
- Fix Don't introduce parenthesis around SynPat.IsInst. #1660
- Fix Offside error splitting long line. #1651
- Fix Offside errors after formatting. #1650
- Fix Idempotency problem with with block. #1647
- Fix Formatting code makes Interpolated verbatim strings to non-verbatim strings, which breaks the code. #1645
- Fix Comment stripped in a record with semi-colons. #1643
- Fix Another shape which isn't respecting KeepIndentInBranch. [#1638](https://github.com/fsproje...
February Release
4.4.0 "Life Eternal" February release
- Revisit SynExpr.IfThenElse. #1258
- Target netcoreapp3.1 for fantomas-tool.
- Stricter trivia selection. #1304
- Fix Idempotency problem when function argument's type annotation requires brackets. #1470
- Fix Inconsistency about when fantomas decides to split
()
(unit) to the next line. #1469 - Fix Unexpected newline between hash directives. #1464
- Fix Oscillating newlines in custom computation expression. #1463
- Fix Violation of "avoid name-sensitive alignments" clause. #1422
- Fix Incorrectly combines tokens when formatting. #1407
- Fix string interpolation with multi-line string causes literal part to change. #1451
- Fix
when
clause in try-with block gets split and causes compiler warnings about indentation. #1406 - Fix Long line breaks match. #1403
- Fix Long line causes offside error. #1402
- Fix Nested matches format into something invalid. #1400
- Fix Shortening big
if
clause still creates compiler warnings. #1390 - Fix “FS0058: Possible incorrect indentation” on function composition after running Fantomas. #1341
- Fix Typed App followed by chained lambda should not add space. #1448
- Fix TypedApp should not have a space when chained. #1447
- Fix Unexpected newline after short match expression. #1445
- Fix Space after chain lambda function is not allowed. #1440
- Fix Formatting error with MultilineBlockBracketsOnSameColumn. #1396
- Fix fsharp_space_before_uppercase_invocation=true breaks method calls. #1437
- Fix Crash regression on 4.4.0-beta-003. #1438
- Fix MultiLineLambdaClosingNewline concats lambda arguments. #1427
- Fix
member val
causes invalid code to be generated. #1426 - Fix Surround return type annotations with white space [F# style guide]. #1420
- Fix Lists concatene onto one line invalidly. #1405
- Fix Accessibility modifier on record causes unindentation of following type. #1404
- Fix Invalid addition of a space after constructor invocation. #1401
- Fix "Inline" is incorrectly stripped out in FSI file. #1399
- Fix Multiple type checks in a
try/with
get collapsed. #1395 - Fix Short line length and member constraint leads to invalid code. #1394
- Fix Object expression newline gets added/removed. #1388
- Fix Arrays of constructors with lots of arguments gets dedented too much. #1382
- Fix Format in pre-commit hook. #1207
- Fix Shortening an 'if' condition causes compilation warnings about indentation. #1374
- Fix Some escapes are unexpectedly modified in character literal patterns. #1372
- Fix Fantomas formats with an error for very long DU case match. #1364
- Fix Fantomas errors out on
new Foo ""
. #1363 - Fix Aesthetics of long members in a type declaration. #1362
- Fix Comment on first constructor argument gets removed. #1350
- Fix “FS0058: Possible incorrect indentation” around if/then/else after running Fantomas. #1349
- Fix Failing to format file should return an exit code different than 0. #1340
- Fix Shorter MaxLineLength with long variable name yields invalid F# code according to fantomas. #1241
- Fix MultilineBlockBracketsOnSameColumn should be honored inside match block. #1238
- Fix Update constructor formatting to match MS Style guide. #1359
- Fix Violation of name-sensitive alignments. #1358
- Fix Pattern matching breaks code when expression is long and somewhat complex. #1352
- Fix Inserts extra newline everytime formatter runs. #1346
- Fix Functions looses space before parameter if func is defined inside method. #1345
- Fix Required backslash removed in string interpolation. #1344
- Fix Swallows comment before #nowarn directive. #1220
- Fix Swallows comment inside
with
block (of a try-with). #1219 - Fix Program.fs inside full path can lead to invalid AST. #1337
- Fix Formatting of long parameter lists. #657
- Fix DotGet inside If expression not correct on second format. #1329
- Fix Pipe is indented too far. #1327
- Fix IfThenElse piped leads to invalid code. #1324
- Fix Multiline when condition in pattern match needs to be further indented. #1320
- Fix Add comma in front of expression in tuple with if/then/else. #1319
- Fix New line before for loop not preserved. #1317
- Fix Newline before set expression is lost. #1314
- Fix Newline after let bang is missing. #1313
- Fix Revisit place parameters on a new line for long definitions. #1307
- Fix static member should only have a single indent. #1300
- Fix Elmish-like syntax using yields with interspersed let statements breaks the code. #1191
- Fix The 'member' keyword gets deleted in 'abstract member' declarations. #1106
- Fix Don't indent too far. #659
- Fix static member should only have a single indent. #1300
- Fix Named string argument to type provider requires a space prior to '@', which Fantomas removes. #1209
- Fix Don't indent too far. #659
- Fix spaces removed from string. #1290
Special thanks to @btzo, @knocte, @HumbertoCortes, @theothornhill, @Evangelink, @josh-degraw, @johlrich, @suside, @vain0x, @ursenzler, @TobyShaw, @JackMatusiewiczGR, @Smaug123, @c-rindi, @jgiannuzzi and @stackedsax
December release
4.3.0 "See The Light" December release
- Feature Clarify constructors. #1217
- Feature MultiLineLambdaClosingNewline. #1221
- Feature Disable Elmish syntax. #1198
- Support user-provided end-of-line characters. #1231
- Add option to make expressions multiline based on number of subexpressions rather than character length. #1143
- Update to FCS 38. #1240
- Fix Comment after let binding breaks downstream output. #1284
- Fix Comments are removed before and after empty array literals. #1281
- Fix Use a safe filename when formatting from CodeFormatter. #1279
- Fix Incorrect movement of a comma. #966
- Fix Bracket indentation is incorrect. #1271
- Fix tuple with match formats to invalid code. #1269
- Fix Incorrect movement of a comma. #966
- Fix Not adding a space even when all SpaceBefore* settings are enabled. #964
- Fix Multiline if condition can have incorrect indentation error. #1267
- Fix multiline do bang gives a warning. #1265
- Fix regressions. #1264
- Fix multiline yield bang in list should be further indented. #1254
- Fix Or pipe in destructured record should not be splitted. #1252
- Fix Swap order of private and inline. #1250
- Fix Comment is lost in enum. #1247
- Fix Nested if/else/then in short mode. #1243
- Fix Something doesn't add up in fix for 303. #1093
- Fix Fantomas format is "unstable/oscillates" after upcast operator: adds/removes empty line. #1227
- Fix Misplaces
=
in function signature so it's invalid F# code. #1218 - Fix Additional newline is added between if/elif and for loop. #1211
- Fix Let binding in hash directive disappears. #1205
- Fix Downcast operator doesn't get a new line. #1203
- Fix Implicit unit else results in extra lines with each reformat. #1187
- Fix Incorrect formatting of function parameter application with lambdas. #1201
- Fix Lambda functions in fluent API calls should indent further. #970
- Fix Hard to read code when using Thoth.Json. #685
- Fix --check should ignore the line endings. #1196
- Fix Format entire return type on the line. #1181
- Fix Only add one
in
keyword in LetOrUse. #1176 - Fix Multiline SynPat.Record in pattern match is formatted as a mixture of single/multiline styles. #1173
- Fix Inconsistent indentation of multiline records with internal keyword when fsharp_multiline_block_brackets_on_same_column is on/off. #1171
- Fix Lambda argument splits in awkward way. #1164
- Fix Multiline expression should be on next line. #1158
- Fix Missing in keyword makes code invalid. #1114
- Fix Invalid code after format. #1032
- Fix Space before ^ SRTP type is removed in function call. #984
- Fix Shouldn't remove space after colon. #908
- Fix Crash when formatting with config file. #824
- Fix Formatting typeof generic static constraint fails to compile. #803
- Fix Indenting of record definition when internal. #658
Special thanks to @Fizzixnerd, @baronfel, @SamarSha, @btzo, @aarani, @WalternativE, @ThisFunctionalTom, @ShalokShalom, @deviousasti, @knocte, @JackMatusiewiczGR, @Smaug123, @c-rindi, @jgiannuzzi and @stackedsax
Late September Release
4.1.1 release
September release
4.1.0 "If You Have Ghosts" September release
- Ignore files by
.fantomasignore
file. #420 - Limit trivia by AST MainNode name. #992
- Lead by example. #666
- Verify all unit test whether the formatted code is valid. #842
- Fix Comments get dropped from the end of multi-line records. #1124
- Fix Functions in nested modules which follow a type consisting of only one member of a DU are un-nested from that module. #1123
- Fix After discriminated union in module wrongly indented. #1122
- Fix Extra whitespace with a type which has an attribute. #1116
- Fix Adds newline between comments and (all but the first) attribute. #1108
- Fix Extra whitespace lines added in fsi files at the end of a nested module declaration. #1105
- Fix Extra new line is added before attributes. #1097
- Fix Comments after closing brace are lost. #1096
- Fix Comment after Or operator lost. #1095
- Fix Trivia before bar is being repeated. #1083
- Fix Comment after arrow is being duplicated. #1082
- Fix Allow line break after return to avoid excessive indenting/aligning. #1062
- Fix Name of static members are removed/empty. #1059
- Fix When using parenthesis in type definition, it will sometimes keep adding additional () for each time fantomas i run. #1057
- Fix Multiline string in use expression. #1055
- Fix Issue #246 has returned in v4.0.0. #1051
- Fix Indentation after multiple hash directives is off. #1026
- Fix if/then/else indented too far. #1054
- Fix Single AST node should contain trivia. #1031
- Fix Formatter adds extra newlines between type and any subsequent val in .fsi files. #1029
- Fix Comments in if/then/else statements are sometimes deleted. #1019
- Fix Moves type name around when writing constrained type definitions. #1018
- Fix Line break before bracket on long method call followed by member access causes semantic change. #994
- Fix Long union case should be split over multiple lines. #972
- Fix FSI formatting does the wrong thing with comments on single-case DU. #965
- Fix Invalid unit test
should break lines on multiline if conditions
. #863 - Fix Abstract member declarations don't follow page width. #435
Special thanks to @gihyeonsung and @knocte.