File tree Expand file tree Collapse file tree 8 files changed +46
-8
lines changed
Fantomas.CoreGlobalTool.Tests Expand file tree Collapse file tree 8 files changed +46
-8
lines changed Original file line number Diff line number Diff line change 1- ### 4.0.0-alpha-013 - 07/2020
1+ ### 4.0.0-alpha-014 - 07/2020
22* WIP for [ #705 ] ( https://github.com/fsprojects/fantomas/issues/705 )
33* FCS 36.0.3
44* Replaced json configuration with .editorconfig
Original file line number Diff line number Diff line change 44 <TargetFramework >netcoreapp3.1</TargetFramework >
55 <IsPackable >false</IsPackable >
66 <GenerateProgramFile >false</GenerateProgramFile >
7- <Version >4.0.0-alpha-013 </Version >
7+ <Version >4.0.0-alpha-014 </Version >
88 <NoWarn >FS0988</NoWarn >
99 </PropertyGroup >
1010 <ItemGroup >
Original file line number Diff line number Diff line change 44 <TargetFramework >netcoreapp3.1</TargetFramework >
55 <ToolCommandName >fantomas</ToolCommandName >
66 <PackAsTool >True</PackAsTool >
7- <Version >4.0.0-alpha-013 </Version >
7+ <Version >4.0.0-alpha-014 </Version >
88 <AssemblyName >fantomas-tool</AssemblyName >
99 </PropertyGroup >
1010 <ItemGroup >
Original file line number Diff line number Diff line change 11<Project Sdk =" Microsoft.NET.Sdk" >
22 <Import Project =" ..\netfx.props" />
33 <PropertyGroup >
4- <Version >4.0.0-alpha-013 </Version >
4+ <Version >4.0.0-alpha-014 </Version >
55 <NoWarn >FS0988</NoWarn >
66 <TargetFramework >netcoreapp3.1</TargetFramework >
77 </PropertyGroup >
Original file line number Diff line number Diff line change @@ -524,7 +524,7 @@ type internal Foo2 =
524524namespace Foo
525525
526526type internal Foo2 =
527- member Bar<'k> : unit -> unit when 'k: comparison
527+ abstract member Bar<'k> : unit -> unit when 'k: comparison
528528"""
529529
530530[<Test>]
@@ -663,3 +663,23 @@ namespace B
663663type Foo =
664664 member Item : 't -> unit when 't : comparison with set
665665"""
666+
667+ [<Test>]
668+ let ``preserve abstract member in type , 944`` () =
669+ formatSourceString true """
670+ namespace Baz
671+
672+ type Foo =
673+ abstract member Bar : Type
674+ abstract Bar2 : Type
675+ member Bar3 : Type
676+ """ { config with SpaceBeforeColon = true }
677+ |> prepend newline
678+ |> should equal """
679+ namespace Baz
680+
681+ type Foo =
682+ abstract member Bar : Type
683+ abstract Bar2 : Type
684+ member Bar3 : Type
685+ """
Original file line number Diff line number Diff line change @@ -860,7 +860,7 @@ and genMemberFlagsForMemberBinding astContext (mf:MemberFlags) (rangeOfBindingAn
860860 tn.ContentItself
861861 |> Option.bind ( fun tc ->
862862 match tc with
863- | Keyword({ Content = ( " override" | " default" | " member" | " abstract" ) as kw }) -> Some (!- ( kw + " " ))
863+ | Keyword({ Content = ( " override" | " default" | " member" | " abstract" | " abstract member " ) as kw }) -> Some (!- ( kw + " " ))
864864 | _ -> None
865865 )
866866 )
Original file line number Diff line number Diff line change 44 <PropertyGroup >
55 <TargetFramework >netstandard2.0</TargetFramework >
66 <CopyLocalLockFileAssemblies >true</CopyLocalLockFileAssemblies >
7- <Version >4.0.0-alpha-013 </Version >
7+ <Version >4.0.0-alpha-014 </Version >
88 <Description >Source code formatter for F#</Description >
99 </PropertyGroup >
1010 <ItemGroup >
Original file line number Diff line number Diff line change @@ -282,7 +282,25 @@ let private addTriviaToTriviaNode
282282
283283 | { Item = Keyword({ Content = keyword} as kw); Range = range } when ( keyword = " override" || keyword = " default" || keyword = " member" || keyword = " abstract" ) ->
284284 findMemberDefnMemberNodeOnLine triviaNodes range.StartLine
285- |> updateTriviaNode ( fun tn -> tn.ContentItself <- Some ( Keyword( kw))) triviaNodes
285+ |> updateTriviaNode ( fun tn ->
286+ match tn.Type, tn.ContentItself with
287+ | MainNode ( " SynMemberSig.Member" ), Some ( Keyword ({ Content = existingKeywordContent } as token)) when existingKeywordContent =
288+ " abstract"
289+ && keyword =
290+ " member" ->
291+ // Combine the two tokens to appear as one
292+ let tokenInfo =
293+ { token.TokenInfo with
294+ RightColumn = kw.TokenInfo.RightColumn }
295+
296+ let combinedKeyword =
297+ { token with
298+ Content = " abstract member"
299+ TokenInfo = tokenInfo }
300+
301+ tn.ContentItself <- Some( Keyword( combinedKeyword))
302+ | _ -> tn.ContentItself <- Some( Keyword( kw))
303+ ) triviaNodes
286304
287305 | { Item = Keyword({ TokenInfo = { TokenName = tn}} as kw); Range = range } when ( tn = " QMARK" ) ->
288306 findConstNodeAfter triviaNodes range
You can’t perform that action at this time.
0 commit comments