Mixed open and module (alias) statements introduce newlines
Issue created from fantomas-online
Code
open System
open System.Threading
module IO = System.IO
open System.Regular
open System.Regular.Text
Result
open System
open System.Threading
module IO = System.IO
open System.Regular
open System.Regular.Text
Problem description
There should be no newline
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 2025-09-08T06:57:30Z - 31029b10ea2f2f0a8aa7a66c35264ede09cfb0b3
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.
This is only a problem from a certain point of view. What happens here makes sense to me according to Fantomas' internal rules. Open statements are grouped into an open list; module aliases are not part of that grouping. Thus we end up with three Oak nodes, two of which are multiline, which explains the newlines between the module aliases.