Fantomas reports an error when formatting interpolated string with tripple quotes
Closed this issue · 7 comments
Issue created from fantomas-online
Code
let user = "abc"
let json = $$"""
{
"id": "ABC",
"name": "{{user}}",
};
"""
Result
let user = "abc"
let json =
$$"""
{
"id": "ABC",
"name": "{{user}",
};
"""
Problem description
We configured out build to fail on fantomas errors. And if fails on this code. Here's the output from Fantomas:
Formatted │ 0 │ Ignored │ 60 │ Unchanged │ 252 │ Errored │ 1
Failed to format file: ./src/Bootstrapper/PhobosBootstrapper.fs : Formatting ./src/Bootstrapper/PhobosBootstrapper.fs leads to invalid F# code
Extra information
- The formatted result breaks my code.
- The formatted result gives compiler warnings.
- I or my company would be willing to help fix this.
- I would like a release if this problem is solved.
Options
Fantomas main branch at 2024-02-15T12:00:55Z - 0700fd6
Default Fantomas configuration
Did you know that you can ignore files when formatting by using a .fantomasignore file?
PS: It's unlikely that someone else will solve your specific issue, as it's something that you have a personal stake in.
Thanks for reporting.
But I'll close this as a duplicate of #3012
It's a bug in the lexer of the compiler...
Hi Vagif! Thanks for the report, at some point I took a look at the lexer but didn't immediately find anything. This is a more challenging problem for sure.
@nojaf yes, apparently it is. I checked lexer issue, and looks like it was inspected by people much more knowledgeable than me in this area.
Hi @object, there should be a fix for this available in https://www.nuget.org/packages/fantomas/6.3.0-alpha-008
Cool, thanks a lot!
@nojaf Out of curiosity, what has been changed in the fix? I checked the commit files, and they only refer to package changes
The problem was fixed over the compiler side in (dotnet/fsharp#16774, dotnet/fsharp#16785 and dotnet/fsharp#16796).
#3052 mostly updated our source dependency to include these fixes.