AddImport\AddImportFixData.cs (6)
55public readonly ProjectId ProjectReferenceToAdd;
67public readonly ProjectId PortableExecutableReferenceProjectId;
108ProjectId projectReferenceToAdd = null,
109ProjectId portableExecutableReferenceProjectId = null,
132public static AddImportFixData CreateForProjectSymbol(ImmutableArray<TextChange> textChanges, string title, ImmutableArray<string> tags, CodeActionPriority priority, ProjectId projectReferenceToAdd)
140public static AddImportFixData CreateForMetadataSymbol(ImmutableArray<TextChange> textChanges, string title, ImmutableArray<string> tags, CodeActionPriority priority, ProjectId portableExecutableReferenceProjectId, string portableExecutableReferenceFilePathToAdd)
Diagnostics\AbstractHostDiagnosticUpdateSource.cs (8)
28public ValueTask<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Workspace workspace, ProjectId projectId, DocumentId documentId, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken)
37public void ReportAnalyzerDiagnostic(DiagnosticAnalyzer analyzer, Diagnostic diagnostic, ProjectId? projectId)
74public void ClearAnalyzerReferenceDiagnostics(AnalyzerFileReference analyzerReference, string language, ProjectId projectId)
85public void ClearAnalyzerDiagnostics(ImmutableArray<DiagnosticAnalyzer> analyzers, ProjectId projectId)
93public void ClearAnalyzerDiagnostics(ProjectId projectId)
101private void ClearAnalyzerDiagnostics(DiagnosticAnalyzer analyzer, ProjectId projectId)
173private readonly ProjectId? _projectId;
175public HostArgsId(AbstractHostDiagnosticUpdateSource source, DiagnosticAnalyzer analyzer, ProjectId? projectId) : base(analyzer)
Diagnostics\IDiagnosticAnalyzerService.cs (9)
28void Reanalyze(Workspace workspace, IEnumerable<ProjectId>? projectIds = null, IEnumerable<DocumentId>? documentIds = null, bool highPriority = false);
38Task<ImmutableArray<DiagnosticData>> GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
43Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
48Task ForceAnalyzeAsync(Solution solution, Action<Project> onProjectAnalyzed, ProjectId? projectId = null, CancellationToken cancellationToken = default);
53bool ContainsDiagnostics(Workspace workspace, ProjectId projectId);
57/// Note that for project case, this method returns diagnostics from all project documents as well. Use <see cref="GetProjectDiagnosticsForIdsAsync(Solution, ProjectId, ImmutableHashSet{string}, bool, CancellationToken)"/>
60Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, ImmutableHashSet<string>? diagnosticIds = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
64/// Note that this method doesn't return any document diagnostics. Use <see cref="GetDiagnosticsForIdsAsync(Solution, ProjectId, DocumentId, ImmutableHashSet{string}, bool, CancellationToken)"/> to also fetch those.
66Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId = null, ImmutableHashSet<string>? diagnosticIds = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
EditAndContinue\DebuggingSession.cs (11)
40private readonly Dictionary<ProjectId, (Guid Mvid, Diagnostic Error)> _projectModuleIds = new();
41private readonly Dictionary<Guid, ProjectId> _moduleIds = new();
55private readonly Dictionary<ProjectId, (EmitBaseline Baseline, int Generation)> _projectEmitBaselines = new();
303private bool TryGetProjectId(Guid moduleId, [NotNullWhen(true)] out ProjectId? projectId)
369ProjectId projectId,
633using var _1 = PooledDictionary<string, ArrayBuilder<(ProjectId, int)>>.GetInstance(out var documentIndicesByMappedPath);
634using var _2 = PooledHashSet<ProjectId>.GetInstance(out var projectIds);
668foreach (var projectId in projectIds)
980if (TryGetProjectId(moduleId, out var projectId))
1012async Task GetTaskAsync(ProjectId projectId)
1109public EmitBaseline GetProjectEmitBaseline(ProjectId id)
EditAndContinue\SolutionUpdate.cs (6)
16public readonly ImmutableArray<(ProjectId ProjectId, EmitBaseline Baseline)> EmitBaselines;
17public readonly ImmutableArray<(ProjectId ProjectId, ImmutableArray<Diagnostic> Diagnostics)> Diagnostics;
24ImmutableArray<(ProjectId ProjectId, EmitBaseline Baseline)> emitBaselines,
25ImmutableArray<(ProjectId ProjectId, ImmutableArray<Diagnostic> Diagnostics)> diagnostics,
38ImmutableArray<(ProjectId, ImmutableArray<Diagnostic>)> diagnostics,
45ImmutableArray<(ProjectId, EmitBaseline)>.Empty,
ExternalAccess\UnitTesting\SolutionCrawler\UnitTestingWorkCoordinator.UnitTestingSemanticChangeProcessor.cs (11)
177var projectId = thisDocument.Id.ProjectId;
211var self = project.Id;
224foreach (var projectId in GetProjectsToAnalyze(solution, self))
300private static IEnumerable<ProjectId> GetProjectsToAnalyze(Solution solution, ProjectId projectId)
332private static readonly Func<int, ProjectId, string> s_enqueueLogger = (t, i) => string.Format("[{0}] {1}", t, i.ToString());
340private readonly Dictionary<ProjectId, UnitTestingData> _pendingWork = new();
370public void Enqueue(ProjectId projectId, bool needDependencyTracking = false)
428foreach (var projectId in GetProjectsToAnalyze(solution, data.ProjectId))
451public readonly ProjectId ProjectId;
454public UnitTestingData(ProjectId projectId, bool needDependencyTracking, IAsyncToken asyncToken)
NavigateTo\IRemoteNavigateToSearchService.cs (2)
20ValueTask SearchProjectAsync(Checksum solutionChecksum, ProjectId projectId, ImmutableArray<DocumentId> priorityDocumentIds, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
22ValueTask SearchGeneratedDocumentsAsync(Checksum solutionChecksum, ProjectId projectId, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
PdbSourceDocument\PdbSourceDocumentMetadataAsSourceFileProvider.cs (8)
44private readonly Dictionary<string, ProjectId> _assemblyToProjectMap = new();
51private readonly HashSet<ProjectId> _sourceLinkEnabledProjects = new();
206if (!_assemblyToProjectMap.TryGetValue(assemblyName, out var projectId))
294var projectId = ProjectId.CreateNewId();
310SourceFileInfo?[] sourceFileInfos, Encoding encoding, ProjectId projectId, Workspace sourceWorkspace, Project sourceProject)
418foreach (var projectId in _assemblyToProjectMap.Values)
432internal record struct SourceDocumentInfo(DocumentId DocumentId, Encoding Encoding, SourceHashAlgorithm ChecksumAlgorithm, ProjectId SourceProjectId, Workspace SourceWorkspace);
SolutionCrawler\WorkCoordinator.AsyncDocumentWorkItemQueue.cs (4)
19private readonly Dictionary<ProjectId, Dictionary<DocumentId, WorkItem>> _documentWorkQueue = new();
49ProjectId? preferableProjectId, ProjectDependencyGraph dependencyGraph, IDiagnosticAnalyzerService? service,
69ProjectId? preferableProjectId, ProjectDependencyGraph dependencyGraph, IDiagnosticAnalyzerService? analyzerService)
71var projectId = GetBestProjectId_NoLock(_documentWorkQueue, preferableProjectId, dependencyGraph, analyzerService);
SolutionCrawler\WorkCoordinator.SemanticChangeProcessor.cs (11)
176var projectId = thisDocument.Id.ProjectId;
210var self = project.Id;
223foreach (var projectId in GetProjectsToAnalyze(solution, self))
299private static IEnumerable<ProjectId> GetProjectsToAnalyze(Solution solution, ProjectId projectId)
331private static readonly Func<int, ProjectId, string> s_enqueueLogger = (t, i) => string.Format("[{0}] {1}", t, i.ToString());
339private readonly Dictionary<ProjectId, Data> _pendingWork = new();
369public void Enqueue(ProjectId projectId, bool needDependencyTracking = false)
427foreach (var projectId in GetProjectsToAnalyze(solution, data.ProjectId))
450public readonly ProjectId ProjectId;
453public Data(ProjectId projectId, bool needDependencyTracking, IAsyncToken asyncToken)
Library\ObjectBrowser\AbstractListItemFactory.cs (25)
68protected MemberListItem CreateFullyQualifiedMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden)
77protected MemberListItem CreateInheritedMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden)
80protected MemberListItem CreateSimpleMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden)
83private MemberListItem CreateMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden, bool isInherited)
97protected TypeListItem CreateSimpleTypeListItem(INamedTypeSymbol namedTypeSymbol, ProjectId projectId, bool hidden)
110protected TypeListItem CreateFullyQualifiedTypeListItem(INamedTypeSymbol namedTypeSymbol, ProjectId projectId, bool hidden)
123protected NamespaceListItem CreateNamespaceListItem(INamespaceSymbol namespaceSymbol, ProjectId projectId)
170ProjectId projectId,
171Func<TSymbol, ProjectId, bool, ObjectListItem> listItemCreator)
184ProjectId projectId,
185Func<TSymbol, ProjectId, bool, ObjectListItem> listItemCreator,
205private ImmutableArray<ObjectListItem> GetBaseTypeListItems(INamedTypeSymbol namedTypeSymbol, Compilation compilation, ProjectId projectId)
293ProjectId projectId,
407public void CollectNamespaceListItems(IAssemblySymbol assemblySymbol, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
460private class AssemblySymbolComparer : IEqualityComparer<Tuple<ProjectId, IAssemblySymbol>>
462public bool Equals(Tuple<ProjectId, IAssemblySymbol> x, Tuple<ProjectId, IAssemblySymbol> y)
465public int GetHashCode(Tuple<ProjectId, IAssemblySymbol> obj)
469public ImmutableHashSet<Tuple<ProjectId, IAssemblySymbol>> GetAssemblySet(Solution solution, string languageName, CancellationToken cancellationToken)
473foreach (var projectId in solution.ProjectIds)
512public ImmutableHashSet<Tuple<ProjectId, IAssemblySymbol>> GetAssemblySet(Project project, bool lookInReferences, CancellationToken cancellationToken)
604foreach (var projectId in projectIds)
699ProjectId projectId,
752public void CollectTypeListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
785public void CollectMemberListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
Library\ObjectBrowser\AbstractObjectBrowserLibraryManager_ListItems.cs (5)
16internal void CollectMemberListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
19internal void CollectNamespaceListItems(IAssemblySymbol assemblySymbol, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
22internal void CollectTypeListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
25internal ImmutableHashSet<Tuple<ProjectId, IAssemblySymbol>> GetAssemblySet(Solution solution, string languageName, CancellationToken cancellationToken)
28internal ImmutableHashSet<Tuple<ProjectId, IAssemblySymbol>> GetAssemblySet(Project project, bool lookInReferences, CancellationToken cancellationToken)
Packaging\PackageInstallerServiceFactory.cs (15)
78private readonly AsyncBatchingWorkQueue<(bool solutionChanged, ProjectId? changedProject)> _workQueue;
80private readonly ConcurrentDictionary<ProjectId, ProjectState> _projectToInstalledPackageAndVersion = new();
132_workQueue = new AsyncBatchingWorkQueue<(bool solutionChanged, ProjectId? changedProject)>(
135equalityComparer: EqualityComparer<(bool solutionChanged, ProjectId? changedProject)>.Default,
199bool IPackageInstallerService.IsEnabled(ProjectId projectId)
276var projectId = documentId.ProjectId;
430ProjectId? changedProject = null;
458ImmutableSegmentedList<(bool solutionChanged, ProjectId? changedProject)> workQueue, CancellationToken cancellationToken)
473ImmutableSegmentedList<(bool solutionChanged, ProjectId? changedProject)> workQueue, CancellationToken cancellationToken)
480using var _ = PooledHashSet<ProjectId>.GetInstance(out var projectsToProcess);
486foreach (var projectId in projectsToProcess)
522ImmutableSegmentedList<(bool solutionChanged, ProjectId? changedProject)> workQueue, Solution solution, HashSet<ProjectId> projectsToProcess)
543ProjectId projectId,
606public bool IsInstalled(ProjectId projectId, string packageName)
ProjectSystem\VisualStudioWorkspaceImpl.cs (33)
84private ImmutableDictionary<ProjectId, IVsHierarchy?> _projectToHierarchyMap = ImmutableDictionary<ProjectId, IVsHierarchy?>.Empty;
85private ImmutableDictionary<ProjectId, Guid> _projectToGuidMap = ImmutableDictionary<ProjectId, Guid>.Empty;
89/// <see cref="TryGetRuleSetPathForProject(ProjectId)"/> and any other use is extremely suspicious, since direct use of this is out of
93private ImmutableDictionary<ProjectId, Func<string?>> _projectToRuleSetFilePath = ImmutableDictionary<ProjectId, Func<string?>>.Empty;
284internal override string? TryGetRuleSetPathForProject(ProjectId projectId)
374internal bool IsCPSProject(ProjectId projectId)
386internal bool IsPrimaryProject(ProjectId projectId)
447private bool TryGetProjectData(ProjectId projectId, [NotNullWhen(returnValue: true)] out IVsHierarchy? hierarchy, [NotNullWhen(returnValue: true)] out EnvDTE.Project? project)
456internal void GetProjectData(ProjectId projectId, out IVsHierarchy hierarchy, out EnvDTE.Project project)
464internal EnvDTE.Project? TryGetDTEProject(ProjectId projectId)
467internal bool TryAddReferenceToProject(ProjectId projectId, string assemblyName)
490protected override void ApplyCompilationOptionsChanged(ProjectId projectId, CompilationOptions options)
508protected override void ApplyParseOptionsChanged(ProjectId projectId, ParseOptions options)
525protected override void ApplyAnalyzerReferenceAdded(ProjectId projectId, AnalyzerReference analyzerReference)
547protected override void ApplyAnalyzerReferenceRemoved(ProjectId projectId, AnalyzerReference analyzerReference)
580ProjectId projectId, MetadataReference metadataReference)
606ProjectId projectId, MetadataReference metadataReference)
654var projectId = changesForFile.Value.First().ProjectId;
663async Task<MultiDictionary<string, (TextChange TextChange, ProjectId ProjectId)>> GetMappedTextChanges(SolutionChanges solutionChanges)
665var filePathToMappedTextChanges = new MultiDictionary<string, (TextChange TextChange, ProjectId ProjectId)>();
699ProjectId projectId, ProjectReference projectReference)
739ProjectId projectId, ProjectReference projectReference)
1041internal void OpenDocumentFromPath(string? filePath, ProjectId projectId, bool activate = true)
1063private bool TryGetFrame(string? filePath, ProjectId projectId, [NotNullWhen(returnValue: true)] out IVsWindowFrame? frame)
1274public override IVsHierarchy? GetHierarchy(ProjectId projectId)
1280internal override Guid GetProjectGuid(ProjectId projectId)
1286internal string? TryGetDependencyNodeTargetIdentifier(ProjectId projectId)
1363internal bool TryGetHierarchy(ProjectId projectId, [NotNullWhen(returnValue: true)] out IVsHierarchy? hierarchy)
1415internal override bool CanAddProjectReference(ProjectId referencingProject, ProjectId referencedProject)
TaskList\ExternalErrorDiagnosticUpdateSource.cs (41)
26using ProjectErrorMap = ImmutableDictionary<ProjectId, ImmutableArray<DiagnosticData>>;
157public bool IsSupportedDiagnosticId(ProjectId projectId, string id)
170public void ClearErrors(ProjectId projectId)
203foreach (var projectId in transitiveProjectIds)
217async ValueTask ClearErrorsCoreAsync(ProjectId projectId, Solution solution, InProgressState? state)
382if (item is ProjectId projectId)
393private void ClearBuildOnlyProjectErrors(Solution solution, ProjectId? projectId)
411private void ClearBuildOnlyDocumentErrors(Solution solution, ProjectId? projectId, DocumentId? documentId)
414public void AddNewErrors(ProjectId projectId, DiagnosticData diagnostic)
443ProjectId projectId, HashSet<DiagnosticData> projectErrors, Dictionary<DocumentId, HashSet<DiagnosticData>> documentErrorMap)
470private ValueTask ReportPreviousProjectErrorsIfRequiredAsync(ProjectId projectId, InProgressState state)
472if (state.TryGetLastProjectWithReportedErrors() is ProjectId lastProjectId &&
481private async ValueTask SetLiveErrorsForProjectAsync(ProjectId projectId, InProgressState state)
488private ValueTask SetLiveErrorsForProjectAsync(ProjectId projectId, ImmutableArray<DiagnosticData> diagnostics, CancellationToken cancellationToken)
539private void RaiseDiagnosticsCreated(object? id, Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableArray<DiagnosticData> items)
546private void RaiseDiagnosticsRemoved(object? id, Solution solution, ProjectId? projectId, DocumentId? documentId)
562Workspace workspace, ProjectId projectId, DocumentId documentId, object id, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
585private readonly Dictionary<ProjectId, ImmutableHashSet<string>> _allDiagnosticIdMap = new();
596private readonly Dictionary<ProjectId, ImmutableHashSet<string>> _liveDiagnosticIdMap = new();
607private readonly Dictionary<ProjectId, Dictionary<DiagnosticData, int>> _projectMap = new();
620private readonly HashSet<ProjectId> _projectsWithErrorsCleared = new();
625private readonly HashSet<ProjectId> _projectsWithAllLiveErrorsReported = new();
631private readonly HashSet<ProjectId> _projectsWithErrors = new();
636private ProjectId? _lastProjectWithReportedErrors;
657ProjectId projectId,
658Dictionary<ProjectId, ImmutableHashSet<string>> diagnosticIdMap,
678public bool IsSupportedDiagnosticId(ProjectId projectId, string id)
681private ImmutableHashSet<string> GetOrCreateSupportedDiagnosticIds(ProjectId projectId)
710public void MarkErrorsCleared(ProjectId projectId)
716public bool WereProjectErrorsCleared(ProjectId projectId)
719public void MarkLiveErrorsReported(ProjectId projectId)
722public ProjectId? TryGetLastProjectWithReportedErrors()
728var pendingLiveErrorsToSyncBuilder = ImmutableDictionary.CreateBuilder<ProjectId, ImmutableArray<DiagnosticData>>();
729foreach (var projectId in GetProjectsWithErrors())
745IEnumerable<ProjectId> GetProjectsWithErrors()
754public ImmutableArray<DiagnosticData> GetLiveErrorsForProject(ProjectId projectId)
779public void AddErrors(ProjectId key, HashSet<DiagnosticData> diagnostics)
785public void AddError(ProjectId key, DiagnosticData diagnostic)
918RoslynDebug.Assert(key is DocumentId or ProjectId);
919var projectId = (key is DocumentId documentId) ? documentId.ProjectId : (ProjectId)(object)key;
TaskList\HostDiagnosticUpdateSource.cs (8)
27private readonly Dictionary<ProjectId, HashSet<object>> _diagnosticMap = new();
46private void RaiseDiagnosticsCreatedForProject(ProjectId projectId, object key, IEnumerable<DiagnosticData> items)
59private void RaiseDiagnosticsRemovedForProject(ProjectId projectId, object key)
71private object CreateId(ProjectId projectId, object key) => Tuple.Create(this, projectId, key);
73public void UpdateDiagnosticsForProject(ProjectId projectId, object key, IEnumerable<DiagnosticData> items)
87public void ClearAllDiagnosticsForProject(ProjectId projectId)
111public void ClearDiagnosticsForProject(ProjectId projectId, object key)
131public DiagnosticData CreateAnalyzerLoadFailureDiagnostic(AnalyzerLoadFailureEventArgs e, string fullPath, ProjectId projectId, string language)