Releases: fsprojects/fantomas
Releases · fsprojects/fantomas
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
whenclause 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
ifclause 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 valcauses 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/withget 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
withblock (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
inkeyword 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
.fantomasignorefile. #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.
August release
4.0.0 "He is" August release
- Add initial support of String Interpolation. #998
- Extract FakeHelpers and EditorConfig to Fantomas.Extras project #986
- Update FCS to 37. #996
- Update FCS to 36. #899, #961
- Replaced json configuration with .editorconfig. #650
- Sunset setting ReorderOpenDeclaration. #645
- Sunset setting KeepNewlineAfter. #737
- Renamed setting IndentSpaceNum to IndentSize. #940
- Renamed setting PageWidth to MaxLineLength. #940
- Removed all style configuration options from CLI tool. #704
- Added Benchmarks. #867
- Split up setting SpaceBeforeArgument to multiple settings. #649
- SpaceBeforeParameter
- SpaceBeforeLowercaseInvocation
- SpaceBeforeUppercaseInvocation
- SpaceBeforeClassConstructor
- SpaceBeforeMember
- Increase control over length of certain code constructs. #697
- MaxRecordWidth
- MaxArrayOrListWidth
- MaxValueBindingWidth
- MaxFunctionBindingWidth
- MaxElmishWidth
- Better support for Elmish inspired code. #922
- Feature SingleArgumentWebMode. #927
- Feature AlignFunctionSignatureToIndentation. #946
- Feature AlternativeLongMemberDefinitions. #913
- Feature MultilineBlockBracketsOnSameColumn. #453
- Feature NewlineBetweenTypeDefinitionAndMembers. #752
- Feature KeepIfThenInSameLine. #825
- Fix Comments in match statements are sometimes deleted. #1010
- Fix Comments on members with get/set are deleted. #1009
- Fix Hexadecimal numbers in enums are output as decimal numbers. #1006
- Fix List indentation issue. #999
- Fix Hexadecimal numbers in match arms are output as decimal numbers. #995
- Fix Removes the first comment above the member of the list. #990
- Fix Brackets increased every time Fantomas is run. #989
- Fix Bug: Hash directive in computation expression. #977
- Fix Bug with hash directives inside a match statement. #976
- Fix Bug with defines in record member assignment. #968
- Fix Backquotes are stripped down from
checked. #937 - Fix Fantomas wraps extra set of parenthesis around parenthesis. #921
- Fix Remove indent setting from CLI tool. #888
- Fix Fantomas generating invalid F# when trying to format a list created with yields. #882
- Fix Invalid unit test
method call on multiple lines. #862 - Fix Invalid unit test
should break on . operator and keep indentation. #860 - Fix Multi-line arguments to chained method calls produce invalid code. #702
- Fix Line comment displaced from commented #-directive. #638
- Fix #if'd argument types are lost. #633
- Fix #if'd attributes moved to wrong column. #631
- Fix Assembly attributes create over-long lines. #629
- Fix List expression can get combined to a single line with different semantics. #931
- Fix Additional new line inserted around attributes. #949
- Fix
with getremoval in FSI invalid. #945 - Fix FSI file has "abstract" stripped. #944
- Fix Insertion of space before function application can break dot-chaining. #943
- Fix Concatenation of lines can break operator precedence. #942
- Fix Extra spaces inserted in record definition. #941
- Fix Comments at the end of async blocks are deleted automatically. #936
- Fix Newline between comments should lead to individual comments. #920
- Fix VS Code | Extra white space added to record definition. #910
- Fix When cutting off function invocations, should place each param in its own line (or align them to the 1st param). #907
- Fix Try online link points to old location. #890
- Fix Leading
|in single-case union type with access modifier. #889 - Fix Type constraint on a type definition causes a loss of the type definition. #887
- Fix Fantomas removes the 'and' if there are multiple member constraints on a function declaration. #886
- Fix Comments inside a type definition can cause issues. #885
- Fix Long function signature should align with equal sign. #883
- Fix Newline not preserved between let and let bang. #879
- Fix Stackoverflow problem with let bang in match. #876
- Fix Incorrect formatting for chained class members using Websharper. #871
- Fix Pipe before and inside lambda leads to wrong indent of following lambda. #870
- Fix Formatting Program.fs with
--checkfails. #869 - Fix Possible wrong indentation for functions with parameters over multiple lines. #868
- Fix Invalid unit test
different attributes according to defines. #864 - Fix Invalid unit test
record instance with inherit keyword. #861 - Fix Invalid unit test
should add space before type provider params. #859 - Fix Incorrect end of line added after "(" which makes the code not to compile. #856
- Fix Incorrect end of line added after "(". #855
- Fix SpaceBeforeUppercaseInvocation applied in the middle of a invocation chain. #853
- Fix MultilineBlockBracketsOnSameColumn not working properly when calling base constructors. #852
- Fix PageWidth not respected for member with one long parameter. #850
- Fix Wrong indentation in member definition. #844
- Fix Class type with long variable names results in invalid formatted F# code. #841
- Fix Multiline let bang should have newline before. #838
- Fix complex computation expression identifier looks off. #835
- Fix keyword before type declaration leads to invalid F# code. #830
- Fix Inconsistent if-then-else cut. #825
- Fix MultilineBlockBracketsOnSameColumn=true not working on records with short names. #823
- Fix --config fantomas-config.json gives error. #821
- Fix multiline let bang should have a newline. #819
- Fix Updated value not indented correctly. [#817](https://github.com/fsprojects/fantomas/issu...
Late February Release
3.3.0 "Pro Memoria" Late February release
- Support for
and!. #690 - Support for new slice syntax. #691
- Support for check style flag #642
- Update FCS to 34.1 #699
- Allow to configure spaces before and after semicolon. #653
- Fix Problem with --config and directory names containing ".". #694
- Fix Space is removed after Foo.Create. #676
- Fix Error in formatting nested else if construction. #675
- Fix Unbalanced and misplaced #if directives after formatting. #635
- Fix Stack overflow when using fantomas 3.2.0-beta-002. #630
- Fix --help and --version return exit code 1. #612
- Fix Line comment disappears after format. #598
- Fix Stack overflow for global tool on OSX. #591
- Fix Page width is not respected when formatting a function signature. #495
- Update README with link to YouTube videos series. #672
Special thanks to @jindraivanek, @baronfel, @lpedrosa & @tcallan
February release
3.2.0 "Con Clavi Con Dio" February release
- Added support for settings configuration file. #354
- Use Argu for commandline argument parsing. #607
- Fix Unicode null escapes are still unescaped. #632
- Fix Back ticks are removed from enum. #626
- Fix Pipe is removed when DU type name matches record type name. #641
- Fix fantomas --version should return version. #625
- Fix Extra newline between attribute and function. #611
- Fix Invalid code produced when formatting type alias for struct tuple. #605
- Fix Extra newlines repeatedly being added inside an object expression. #601
- Fix Empty line added on each format. #597
- Fix Error when formatting DU with single choice and attribute. #596
- Fix Unwanted new line after elif expression. #588
- Fix Unwanted new line added. #586
- Fix Empty lines in multi-line string get moved. #577
- Fix Error when combining #if directive with async block and let. #576
- Fix DllImport not detected when using additional attribute. #574
- Fix Comment in async block gets moved. #573
- Fix Enum comments removed. #572
- Fix Fantomas keeps adding new lines between two interface member implementations. #569
- Fix Unindented DU case causes compile error. #567
- Fix Erroneous whitespace in chained accessors. #566
- Fix Comments inside type signatures break formatting. #565
- Fix Hash symbol in signatures requires parens to remain. #564
- Fix Stack overflow in Strict mode. #562
- Fix Accessibility modifiers in DUs. #561
- Fix Line comment place after lambda instead of infix function. #559
- Fix Sequence expression inside computation expression outputs uncompilable code. #553
- Fix Comment after [ is not preserved. #551
- Fix Record update indentation incorrect around comments. #537
- Fix Formatting document continuously adds new lines each time it's called. #535
- Fix Comments like
(fun arg -> // commentare lost. #534 - Fix KeepNewlineAfter not respected in let binding. #524
- Fix Improve formatting of lambda between parenthesis. #523
- Fix Crash when using --keepNewlineAfter. #513
- Fix Over-aggresive folding breaks nested lambda expressions. #486
- Fix Add FormatASTRangeAsync to API. #454
- Fix Intrinsic type extension member signatures are erased. #413
- Fix Inconsistencies in if formatting. #135
Special thanks to @jindraivanek, @lpedrosa & @theimowski
November release
3.1.0 "Kiss The Go-Goat" November release
- Fix invalid code generated after multiline string when other expressions exist on same line. #545
- Fix Trivia before elif generates invalid code due to missing indentation. #527
- Fix Don't add additional newline between two and blocks. #520
- Fix Print line comment after
{#517 - Fix Formatting document removes '#if DEBUG' and '#endif'. #512
- Fix Some unicode control characters are incorrectly formatted. #506
- Fix New empty line inserted preceding module attribute. #505
- Fix Weird indentation/breaks with lambda in pipeline. #503
- Fix Sufficiently indent match case bodies for other indentation lengths than 4. #502
- Fix
--noSpaceBeforeColondoesn't work. #499 - Fix Invalid code produced when wrapping method call to new line. #498
- Fix Indexer usage fails to parse. #497
- Use FCS 33.0.0. pull/568
- Use dotnet tools pull/558
- Add
--maxIfThenElseShortWidthoption, see documentation
Special thanks to @jindraivanek, @smoothdeveloper & @baronfel
October release
3.0.0 "Infestissumam" October release
- Use FCS 32.0.0. 490b121af427ec4f6eba94f6d6d08cf3f91e04c8
- Deprecate PreserveEndOfLine feature. #390
- Upgrade to .NET Core 3.0 and deprecate dotnet-fantomas. b13aa00a57541be5f6182dc65ee27dc81174ab15
- F# 4.7 support. 9ab8f007446d2e8311a204a9c8a73d758a189939
- KeepNewlineAfter setting. #449
- Refactored API #454
- Fix Adding parentheses around expressions can lead to incorrect indentation. #385
- Fix Indentation removed when combining comments and compiler directives. #382
- Fix Fantomas removes module and namespace if it is only 1 word (without dots). #380
- Fix Indentation incorrect for code with chained fluent interface method calls. #379
- Fix Incorrect indentation when space around delimiter is false. #362
- Fix Meaningful spaces can be collapsed in record-with expressions. #353
- Fix CLI arguments not accepted. #334
- Fix Calls to constructor from inherited class leads to wrong indentation (breaks build). #326
- Fix Indent level context lost in record initialization -- causes compilation failure. #313
- Fix Semi-colons may or may not be insterted in list literals. #312
- Fix Handling of blank lines is idiosyncratic. #311
- Fix Over-length line not folded (inside #if block). #309
- Fix With --preserverEOL, multi-line lambdas are not correctly formatted. #307
- Fix Reformatting #if blocks controlling attributes changes the meaning of the code. #304
- Fix Some spacing is still lost in and around #if blocks. #303
- Fix Weird formattiing behavior. #287
- Fix #if blocks result in code being moved around incorrectly. #282
- Fix Inline replacement. #278
- Fix No new line after long name when copying record with "with". #155
- Fix Formatting of multi-line list literals. #133
- Fix Problems with very long lines and/or files. #119
- Fix Adjust default configuration to be more F# idiomatic. #61
- Fix Excessive line breaking. #43
- Fix [Trivia] Line comment after
thenbreaks code. #451 - Fix Bug report from fantomas-ui. #450
- Fix Publish 3.0.0 to NuGet.org with a preview flag. #448
- Fix Include directive with
__SOURCE_DIRECTORY__is removed and replace. #447 - Fix Formatting if expressions not according to style-guide. #446
- Fix PreserveEndOfLine+SpaceAroundDelimiter add an unnecessary space before closing brace. #443
- Fix Record option with attribute gets an additional space with PreserveEndOfLine. #442
- Fix Quotation escapes removed - Bug report from fantomas-ui. #440
- Fix Fantomas fails in Fake script. #439
- Fix Configuration options for "Fabulous compatibility"?. #437
- Fix Using fantomas with dotnet-format. #430
- Fix Change space before colon default to false. #429
- Fix global.json specifies outdated dotnet sdk. #426
- Fix Errors after formatting secondary constructors. #423
- Fix Wrong attribute and xml doc placement on reformat with PreserveEOL. #422
- Fix When running the tool for a fairly large script file (1000 lines) nothing happens. #416
- Fix Is Fantomas still supported for VS? Couldn't find it?. #415
- Fix the required library libhostfxr.so could not be found. #412
- Fix Latest FCS breaks fantomas. #410
- Fix Compiled operators names are replaced with source names. #409
- Fix Wrong anon module formatting when filename starts with a digit. #408
- Fix Raw method names with
/are formatted improperly. #406 - Fix Attributes followed by unit literals aren't formatted properly. #405
- Fix Wrongly removed "with" for member on record, PreserveEndOfLine=true. #388
- Fix IndentSpaceNum is ignored if PreserveEndOfLine is enable. #387
- Fix An option to preserve empty lines between logical blocks. #496
- Fix Bug report from fantomas-ui. #491
- Fix
finallyis duplicated, moved. #487 - Fix Multiple #if cases causes failure (3.0.0 beta3 and beta4). #484
- Fix Significant spaces lost (v3.0.0-beta4). #483
- Fix #if/#endif lost with v3.0.0-beta-004. #482
- Fix Exception when code for no defines is empty. #480
- Fix Stackoverflow exception in AstTransformer. #479
- Fix [Trivia] Significant spacing added after let binding in function. #478
- Fix Incorrect replacement of
overridewithmember. #477 - Fix [Trivia] Fantomas removes the parentheses around Fable's string field access syntax. #476
- Fix [Trivia] Additional line added after very specific case. #475
- Fix Multiple extension members cause additional lines to be printed. #473
- Fix Long text lines cause out of range exception in 3.0.0-beta. #472
- Fix Class member attributes cause additional lines. #471
- Fix 'with' incorrectly removed. #469
- Fix Online UI tool doesn't understand F# 4.6's {| |}. #467
- Fix Exception handling 'with' clause using drop-through is malformed. #465
- Fix Unicode null escapes are unescaped (v3.0.0. beta1, beta2). #464
- Fix Multiline record not on new line after DU constructor. #462
- Fix Feature request: Prefix generic type parameters. #460
- Fix Fantomas hangs indefinitely when run. #459
- Fix record mutation: first field after
withshould be placed in a new line. #457 - Fix for i in 1..-1..0 do: should add space before
-. #456 - Fix Incorrect handling of attributes in static method. #452
Special thanks to @jindraivanek & G-Research