@@ -220,6 +220,10 @@ type internal FSharpLanguageService(package : FSharpPackage) as this =
220220let checkerProvider = this.Package.ComponentModel.DefaultExportProvider.GetExport< FSharpCheckerProvider>() .Value
221221let projectInfoManager = this.Package.ComponentModel.DefaultExportProvider.GetExport< ProjectInfoManager>() .Value
222222
223+ let projectDisplayNameOf projectFileName =
224+ if String.IsNullOrWhiteSpace projectFileNamethen projectFileName
225+ else Path.GetFileNameWithoutExtension projectFileName
226+
223227/// Sync the information for the project
224228member this.SyncProject ( project : AbstractProject , projectContext : IWorkspaceProjectContext , site : IProjectSite , forceUpdate ) =
225229
@@ -248,16 +252,13 @@ type internal FSharpLanguageService(package : FSharpPackage) as this =
248252let projectGuid = Guid( site.ProjectGuid)
249253let projectFileName = site.ProjectFileName()
250254
251- let projectDisplayName =
252- if String.IsNullOrWhiteSpace projectFileNamethen projectFileName
253- else Path.GetFileNameWithoutExtension projectFileName
255+ let projectDisplayName = projectDisplayNameOf projectFileName
254256
255257let projectId = workspace.ProjectTracker.GetOrCreateProjectIdForPath( projectFileName, projectDisplayName)
256258
257259 projectInfoManager.UpdateProjectInfo( projectId, site, workspace)
258260
259- match workspace.ProjectTracker.GetProject( projectId) with
260- | null ->
261+ if isNull( workspace.ProjectTracker.GetProject projectId) then
261262let projectContextFactory = this.Package.ComponentModel.GetService< IWorkspaceProjectContextFactory>();
262263let errorReporter = ProjectExternalErrorReporter( projectId, " FS" , this.SystemServiceProvider)
263264
@@ -277,7 +278,6 @@ type internal FSharpLanguageService(package : FSharpPackage) as this =
277278for referencedSitein ProjectSitesAndFiles.GetReferencedProjectSites( site, this.SystemServiceProvider) do
278279let referencedProjectId = setup referencedSite
279280 project.AddProjectReference( ProjectReference referencedProjectId)
280- | _ -> ()
281281 projectId
282282 setup( siteProvider.GetProjectSite()) |> ignore
283283
@@ -286,14 +286,17 @@ type internal FSharpLanguageService(package : FSharpPackage) as this =
286286let loadTime = DateTime.Now
287287let options = projectInfoManager.ComputeSingleFileOptions( fileName, loadTime, fileContents, workspace) |> Async.RunSynchronously
288288
289- let projectId = workspace.ProjectTracker.GetOrCreateProjectIdForPath( options.ProjectFileName, options.ProjectFileName)
289+ let projectFileName = fileName
290+ let projectDisplayName = projectDisplayNameOf projectFileName
291+
292+ let projectId = workspace.ProjectTracker.GetOrCreateProjectIdForPath( projectFileName, projectDisplayName)
290293 projectInfoManager.AddSingleFileProject( projectId, ( loadTime, options))
291294
292- if obj.ReferenceEquals ( workspace.ProjectTracker.GetProject( projectId ), null ) then
295+ if isNull ( workspace.ProjectTracker.GetProject projectId ) then
293296let projectContextFactory = this.Package.ComponentModel.GetService< IWorkspaceProjectContextFactory>();
294297let errorReporter = ProjectExternalErrorReporter( projectId, " FS" , this.SystemServiceProvider)
295298
296- let projectContext = projectContextFactory.CreateProjectContext( FSharpCommonConstants.FSharpLanguageName, options.ProjectFileName , options.ProjectFileName , projectId.Id, hier, null , errorReporter)
299+ let projectContext = projectContextFactory.CreateProjectContext( FSharpCommonConstants.FSharpLanguageName, projectDisplayName , projectFileName , projectId.Id, hier, null , errorReporter)
297300 projectContext.AddSourceFile( fileName)
298301
299302let project = projectContext:?> AbstractProject