Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Idempotency problem when trailing comment is present #1538

Closed
3 tasks
brianberns opened this issue Mar 26, 2021 · 2 comments · Fixed by #1752
Closed
3 tasks

Idempotency problem when trailing comment is present #1538

brianberns opened this issue Mar 26, 2021 · 2 comments · Fixed by #1752

Comments

@brianberns
Copy link

Issue created from fantomas-online

Formatted code

printfn "%s" @"c:\def\ghi\jkl"

printfn "%s" "c:\\def\\ghi\\jkl"
(*
xyz
*)

Reformatted code

printfn "%s" @"c:\def\ghi\jkl"

printfn "%s" "c:\\def\\ghi\\jkl"
(*
xyz
*)

Problem description

Fantomas was not able to produce the same code after reformatting the result.

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/25/2021 16:56:06 - 360c1f8

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
Copy link
Contributor

nojaf commented Mar 26, 2021

Hello Brian, thank you for reporting this issue.

The problem I see here is that both the new line and the comment were detected via the F# tokens yet assigned to a different AST node.

image

image

Fantomas first prints the comment because it is linked after the Do expression and then prints the newline because it is linked to the anonymous module.

Are you interested in submitting a PR to solve this?

@brianberns
Copy link
Author

Hi. That’s not something I can take on at the moment, but I do think Fantomas is very cool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants