@@ -40,9 +40,9 @@ type internal FSharpLanguageService(package : FSharpPackage) =
4040 else
4141 None
4242
43- member this.SyncProject ( projectContext : IWorkspaceProjectContext , site : IProjectSite ) =
43+ member this.SyncProject ( project : AbstractProject , projectContext : IWorkspaceProjectContext , site : IProjectSite ) =
4444 let updatedFiles = site.SourceFilesOnDisk()
45- let workspaceFiles = ( projectContext :?> AbstractProject ) .GetCurrentDocuments() |> Seq.map( fun file -> file.FilePath)
45+ let workspaceFiles = project .GetCurrentDocuments() |> Seq.map( fun file -> file.FilePath)
4646
4747 for file in updatedFiles do if not ( workspaceFiles.Contains( file)) then projectContext.AddSourceFile( file)
4848 for file in workspaceFiles do if not ( updatedFiles.Contains( file)) then projectContext.RemoveSourceFile( file)
@@ -82,8 +82,11 @@ type internal FSharpLanguageService(package : FSharpPackage) =
8282 let outputPath = if Path.IsPathRooted( outputFlag) then outputFlag else Path.Combine( Path.GetDirectoryName( projectFileName), outputFlag)
8383
8484 let projectContext = projectContextFactory.CreateProjectContext( FSharpCommonConstants.FSharpLanguageName, projectFileName, projectFileName, projectGuid, hier, outputPath, errorReporter)
85- this.SyncProject( projectContext, site)
86- site.AdviseProjectSiteChanges( FSharpCommonConstants.FSharpLanguageServiceCallbackName, AdviseProjectSiteChanges( fun () -> this.SyncProject( projectContext, site)))
85+ let project = projectContext :?> AbstractProject
86+
87+ this.SyncProject( project, projectContext, site)
88+ site.AdviseProjectSiteChanges( FSharpCommonConstants.FSharpLanguageServiceCallbackName, AdviseProjectSiteChanges( fun () -> this.SyncProject( project, projectContext, site)))
89+ site.AdviseProjectSiteClosed( FSharpCommonConstants.FSharpLanguageServiceCallbackName, AdviseProjectSiteChanges( fun () -> project.Disconnect()))
8790 | _ -> ()
8891 | _ -> ()
8992
0 commit comments