Skip to content

Commit 84ff2d5

Browse files
committed
Buildable solution
1 parent 927a802 commit 84ff2d5

File tree

9 files changed

+34
-26
lines changed

9 files changed

+34
-26
lines changed

ReSharper.FSharp/Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
<PsiFeaturesTestSubplatform>$(Subplatform).Psi.Features_test_Framework.Props</PsiFeaturesTestSubplatform>
3434
<RdBackendCommonSubplatform>$(Subplatform).Rider_RdBackend.Common.Props</RdBackendCommonSubplatform>
3535
<RiderBackendSubplatform>$(Subplatform).Rider_Rider.Backend.Props</RiderBackendSubplatform>
36-
<UseLocalFSharpCompilerService>true</UseLocalFSharpCompilerService>
37-
<LocalFCSProject>$(MSBuildThisFileDirectory)../../fsharp/src/Compiler/FSharp.Compiler.Service.fsproj</LocalFCSProject>
36+
<UseLocalFSharpCompilerService>true</UseLocalFSharpCompilerService>
37+
<LocalFCSProject>$(MSBuildThisFileDirectory)../../fsharp/src/Compiler/FSharp.Compiler.Service.fsproj</LocalFCSProject>
3838
</PropertyGroup>
3939

4040
<ItemGroup>

ReSharper.FSharp/TypeProviders.Host.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<ItemGroup>
1616
<PackageReference Include="FSharp.Core" />
17-
<PackageReference Include="JetBrains.FSharp.Compiler.Service" />
17+
<PackageReference Condition="'$(UseLocalFSharpCompilerService)' == 'false'" Include="JetBrains.FSharp.Compiler.Service" />
1818
</ItemGroup>
1919

2020
</Project>

ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
<ItemGroup>
2727
<PackageReference Include="FSharp.Core" />
2828
<PackageReference Include="JetBrains.Annotations" />
29-
3029
<PackageReference Include="JetBrains.Lifetimes" />
3130
<PackageReference Include="JetBrains.RdFramework" />
3231
</ItemGroup>

ReSharper.FSharp/src/FSharp/FSharp.Common/src/Checker/FcsCheckerService.fs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ type FcsCheckerService(lifetime: Lifetime, logger: ILogger, onSolutionCloseNotif
201201
new PinTypeCheckResultsCookie(sourceFile, parseAndCheckResults.ParseResults, parseAndCheckResults.CheckResults, prohibitTypeCheck) :> IDisposable
202202
| _ -> { new IDisposable with member this.Dispose() = () }
203203

204-
member x.TryGetStaleCheckResults([<NotNull>] file: IPsiSourceFile, opName) =
204+
member x.TryGetStaleCheckResults([<NotNull>] file: IPsiSourceFile, opName) : FSharpCheckFileResults option =
205205
match x.FcsProjectProvider.GetProjectSnapshot(file) with
206206
| None -> None
207207
| Some snapshot ->
@@ -210,7 +210,8 @@ type FcsCheckerService(lifetime: Lifetime, logger: ILogger, onSolutionCloseNotif
210210
logger.Trace("TryGetStaleCheckResults: start {0}, {1}", path, opName)
211211

212212
// TODO: TryGetRecentCheckResultsForFile for Snapshot
213-
Unchecked.defaultof<FSharpProjectSnapshot option>
213+
// https://github.com/dotnet/fsharp/pull/16720
214+
None
214215
// match x.Checker.TryGetRecentCheckResultsForFile(path, snapshot) with
215216
// | Some (_, checkResults, _) ->
216217
// logger.Trace("TryGetStaleCheckResults: finish {0}, {1}", path, opName)

ReSharper.FSharp/src/FSharp/FSharp.Common/src/Checker/FcsProjectProvider.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ type FcsProjectProvider(lifetime: Lifetime, solution: ISolution, changeManager:
510510
dirtyProjects.Clear()
511511

512512
interface IFcsProjectProvider with
513-
member x.GetProjectOptions(sourceFile: IPsiSourceFile) =
513+
member x.GetProjectSnapshot(sourceFile: IPsiSourceFile) =
514514
locks.AssertReadAccessAllowed()
515515
processInvalidatedFcsProjects ()
516516

@@ -531,7 +531,7 @@ type FcsProjectProvider(lifetime: Lifetime, solution: ISolution, changeManager:
531531
| Some fcsProject when fcsProject.IsKnownFile(sourceFile) -> Some fcsProject.ProjectSnapshot
532532
| _ -> None
533533

534-
member x.GetProjectOptions(psiModule: IPsiModule) =
534+
member x.GetProjectSnapshot(psiModule: IPsiModule) =
535535
locks.AssertReadAccessAllowed()
536536
processInvalidatedFcsProjects ()
537537

ReSharper.FSharp/src/FSharp/FSharp.Psi.Daemon/src/Stages/ScriptLoadPathsStage.fs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
namespace rec JetBrains.ReSharper.Plugins.FSharp.Psi.Daemon.Stages
22

3+
#nowarn "57"
4+
35
open System.Collections.Generic
46
open JetBrains.Application
57
open JetBrains.ReSharper.Daemon.Stages
@@ -51,7 +53,7 @@ type ScriptLoadPathsStageProcess(fsFile, daemonProcess) =
5153
fsFile.Accept(visitor)
5254
if allDirectives.IsEmpty() then () else
5355

54-
match fsFile.CheckerService.FcsProjectProvider.GetProjectOptions(daemonProcess.SourceFile) with
56+
match fsFile.CheckerService.FcsProjectProvider.GetProjectSnapshot(daemonProcess.SourceFile) with
5557
| Some options when not options.OriginalLoadReferences.IsEmpty ->
5658
let document = daemonProcess.Document
5759
let linesCount = document.GetLineCount() |> int

ReSharper.FSharp/src/FSharp/FSharp.Psi.Features/src/Search/FSharpPathReference.fs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
namespace rec JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Searching
22

3+
#nowarn "57"
4+
35
open JetBrains.DataFlow
46
open JetBrains.ReSharper.Plugins.FSharp.Psi.Tree
57
open JetBrains.ReSharper.Plugins.FSharp.Util
@@ -48,9 +50,9 @@ type FSharpPathReference(owner, sourceFile) =
4850
let fsFile = owner.GetContainingFile() :?> IFSharpFile
4951
let document = sourceFile.Document
5052
let tokenStartOffset = owner.Parent.GetTreeStartOffset()
51-
fsFile.CheckerService.FcsProjectProvider.GetProjectOptions(sourceFile)
52-
|> Option.bind (fun options ->
53-
options.OriginalLoadReferences
53+
fsFile.CheckerService.FcsProjectProvider.GetProjectSnapshot(sourceFile)
54+
|> Option.bind (fun snapshot ->
55+
snapshot.OriginalLoadReferences
5456
|> List.tryFind (fun (range, _, _) -> getTreeStartOffset document range = tokenStartOffset)
5557
|> Option.bind (fun (_, _, path) ->
5658
let path = VirtualFileSystemPath.TryParse(path, InteractionContext.SolutionContext)

ReSharper.FSharp/src/FSharp/FSharp.Tests.Host/FSharpTestHost.fs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
namespace JetBrains.ReSharper.Plugins.FSharp.Tests.Host
22

3+
#nowarn "57"
4+
35
open System.Collections.Generic
46
open System.Globalization
57
open System.Linq
@@ -55,10 +57,10 @@ type FSharpTestHost(solution: ISolution, sourceCache: FSharpSourceCache, itemsCo
5557
projectProvider.GetProjectSnapshot(sourceFile)
5658
|> Option.map (fun options ->
5759
options.OtherOptions
58-
|> Array.choose (fun o -> if o.StartsWith("-r:") then Some (o.Substring("-r:".Length)) else None)
59-
|> Array.map (fun p -> VirtualFileSystemPath.TryParse(p, InteractionContext.SolutionContext))
60-
|> Array.filter (fun p -> not p.IsEmpty && directory.IsPrefixOf(p))
61-
|> Array.map (fun p -> p.Name)
60+
|> List.choose (fun o -> if o.StartsWith("-r:") then Some (o.Substring("-r:".Length)) else None)
61+
|> List.map (fun p -> VirtualFileSystemPath.TryParse(p, InteractionContext.SolutionContext))
62+
|> List.filter (fun p -> not p.IsEmpty && directory.IsPrefixOf(p))
63+
|> List.map (fun p -> p.Name)
6264
|> List)
6365
|> Option.defaultWith (fun _ -> List())
6466

@@ -76,7 +78,7 @@ type FSharpTestHost(solution: ISolution, sourceCache: FSharpSourceCache, itemsCo
7678
let dumpFcsProjectReferences (projectModelId: int) =
7779
let projectOptions = getProjectOptions projectModelId
7880
projectOptions.ReferencedProjects
79-
|> Array.map (fun project ->
81+
|> List.map (fun project ->
8082
let outputPath = VirtualFileSystemPath.Parse(project.OutputFile, InteractionContext.SolutionContext)
8183
outputPath.NameWithoutExtension)
8284
|> List

ReSharper.FSharp/test/src/FSharp.Tests.Common/src/Common.fs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
namespace JetBrains.ReSharper.Plugins.FSharp.Tests
22

3+
#nowarn "57"
4+
35
open System
46
open System.Collections.Generic
57
open System.IO
@@ -236,11 +238,11 @@ type TestFcsProjectProvider(lifetime: Lifetime, checkerService: FcsCheckerServic
236238
// todo: referenced projects
237239
// todo: unify with FcsProjectProvider check
238240
let areSameForChecking (newProject: FcsProject) (oldProject: FcsProject) =
239-
let getReferencedProjectOutputs (options: FSharpProjectOptions) =
240-
options.ReferencedProjects |> Array.map (fun project -> project.OutputFile)
241+
let getReferencedProjectOutputs (options: FSharpProjectSnapshot) =
242+
options.ReferencedProjects |> List.map (fun project -> project.OutputFile)
241243

242-
let newOptions = newProject.ProjectOptions
243-
let oldOptions = oldProject.ProjectOptions
244+
let newOptions = newProject.ProjectSnapshot
245+
let oldOptions = oldProject.ProjectSnapshot
244246

245247
newOptions.ProjectFileName = oldOptions.ProjectFileName &&
246248
newOptions.SourceFiles = oldOptions.SourceFiles &&
@@ -258,9 +260,9 @@ type TestFcsProjectProvider(lifetime: Lifetime, checkerService: FcsCheckerServic
258260
newFcsProject
259261
)
260262

261-
let getProjectOptions (sourceFile: IPsiSourceFile) =
263+
let getProjectSnapshot (sourceFile: IPsiSourceFile) =
262264
let fcsProject = getFcsProject sourceFile.PsiModule
263-
Some fcsProject.ProjectOptions
265+
Some fcsProject.ProjectSnapshot
264266

265267
interface IHideImplementation<FcsProjectProvider>
266268

@@ -269,11 +271,11 @@ type TestFcsProjectProvider(lifetime: Lifetime, checkerService: FcsCheckerServic
269271
let fcsProject = getFcsProject sourceFile.PsiModule
270272
fcsProject.ImplementationFilesWithSignatures.Contains(sourceFile.GetLocation())
271273

272-
member x.GetProjectOptions(sourceFile: IPsiSourceFile) =
274+
member x.GetProjectSnapshot(sourceFile: IPsiSourceFile) =
273275
if sourceFile.LanguageType.Is<FSharpScriptProjectFileType>() then
274276
scriptFcsProjectProvider.GetScriptSnapshot(sourceFile) else
275277

276-
getProjectOptions sourceFile
278+
getProjectSnapshot sourceFile
277279

278280
member x.GetParsingOptions(sourceFile) =
279281
if isNull sourceFile then sandboxParsingOptions else
@@ -328,7 +330,7 @@ type TestFcsProjectProvider(lifetime: Lifetime, checkerService: FcsCheckerServic
328330
member x.HasFcsProjects = false
329331
member this.GetAllFcsProjects() = []
330332

331-
member this.GetProjectOptions(_: IPsiModule): FSharpProjectOptions option = failwith "todo"
333+
member this.GetProjectSnapshot(_: IPsiModule): FSharpProjectSnapshot option = failwith "todo"
332334
member this.GetFcsProject(psiModule) = Some (getFcsProject psiModule)
333335
member this.PrepareAssemblyShim _ = ()
334336
member this.GetReferencedModule _ = None

0 commit comments

Comments
 (0)