fantomas icon indicating copy to clipboard operation
fantomas copied to clipboard

Multiple head pattern match

Open nojaf opened this issue 4 years ago • 2 comments

Issue created from fantomas-online

Code

let private (|EmbeddedILTokens|_|) (tokens: Token list) =
    match tokens with
    | { TokenInfo = { TokenName = "LPAREN"
                      CharClass = FSharpTokenCharKind.Delimiter } } :: { TokenInfo = { TokenName = "HASH"
                                                                                       CharClass = FSharpTokenCharKind.Delimiter } } :: { TokenInfo = { TokenName = "WHITESPACE"
                                                                                                                                                        CharClass = FSharpTokenCharKind.WhiteSpace } } :: rest ->
        Some ()
    | _ -> None

Result

let private (|EmbeddedILTokens|_|) (tokens: Token list) =
    match tokens with
    | { TokenInfo = { TokenName = "LPAREN"
                      CharClass = FSharpTokenCharKind.Delimiter } } :: { TokenInfo = { TokenName = "HASH"
                                                                                       CharClass = FSharpTokenCharKind.Delimiter } } :: { TokenInfo = { TokenName = "WHITESPACE"
                                                                                                                                                        CharClass = FSharpTokenCharKind.WhiteSpace } } :: rest ->
        Some()
    | _ -> None

Problem description

Would be nice to put some more newline in the list pattern. This probably breaks the max line length.

Extra information

  • [ ] The formatted result breaks by code.
  • [ ] The formatted result gives compiler warnings.
  • [ ] I or my company would be willing to help fix this.

Options

Fantomas Master at 03/05/2021 14:51:06 - 69fd7ea5fc92994488b6f1fd6e6fb8dbf9313db8

Default Fantomas configuration

Did you know that you can ignore files when formatting from fantomas-tool or the FAKE targets by using a .fantomasignore file?

nojaf avatar Mar 06 '21 14:03 nojaf

Another example of the same issue, came up for me today.

Issue created from fantomas-online

Code

match bytes with
| 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: tail ->
    x
 

Result

match bytes with
| 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: 0x52uy :: 0x41uy :: 0x4Euy :: 0x44uy :: 0x4Fuy :: 0x4Duy :: 0x5Fuy :: 0x42uy :: 0x59uy :: 0x54uy :: 0x45uy :: 0x53uy :: tail ->
    x

pbiggar avatar Aug 31 '21 15:08 pbiggar

Thanks for the report!

nojaf avatar Sep 06 '21 08:09 nojaf