Skip to content

Commit 701ebe4

Browse files
committed
Fix 3188
1 parent 5122df1 commit 701ebe4

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

src/Fantomas.Core.Tests/ModuleTests.fs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,3 +1086,27 @@ namespace ``G-Research``.``FSharp X``.``Analyzers Y``
10861086
module StringAnalyzers =
10871087
()
10881088
"""
1089+
1090+
[<Test>]
1091+
let ``hash directives around access modifier in module, 3188`` () =
1092+
formatSourceString
1093+
"""
1094+
[<RequireQualifiedAccess>]
1095+
module
1096+
#if !MCP
1097+
internal
1098+
#endif
1099+
Fantomas.Core.CodeFormatterImpl
1100+
"""
1101+
config
1102+
|> prepend newline
1103+
|> should
1104+
equal
1105+
"""
1106+
[<RequireQualifiedAccess>]
1107+
module
1108+
#if !MCP
1109+
internal
1110+
#endif
1111+
Fantomas.Core.CodeFormatterImpl
1112+
"""

src/Fantomas.Core/CodePrinter.fs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4052,9 +4052,24 @@ let genModule (m: ModuleOrNamespaceNode) =
40524052
+> genAttributes header.Attributes
40534053
+> genMultipleTextsNode header.LeadingKeyword
40544054
+> sepSpace
4055-
+> genAccessOpt header.Accessibility
4055+
+> optSingle
4056+
(fun (accessibility: SingleTextNode) ->
4057+
let hasTriviaBeforeAccess = accessibility.HasContentBefore
4058+
4059+
onlyIf hasTriviaBeforeAccess indent
4060+
+> genSingleTextNode accessibility
4061+
+> sepSpace
4062+
+> onlyIf hasTriviaBeforeAccess unindent)
4063+
header.Accessibility
40564064
+> onlyIf header.IsRecursive (sepSpace +> !-"rec" +> sepSpace)
4057-
+> optSingle genIdentListNode header.Name
4065+
+> optSingle
4066+
(fun (name: IdentListNode) ->
4067+
let hasTriviaBeforeName = name.HasContentBefore
4068+
4069+
onlyIf hasTriviaBeforeName (indent +> indent)
4070+
+> genIdentListNode name
4071+
+> onlyIf hasTriviaBeforeName (unindent +> unindent))
4072+
header.Name
40584073
|> genNode header)
40594074
+> newline)
40604075
m.Header

0 commit comments

Comments
 (0)