Compute solution explorer diagnostic descriptors in OOP process.#79802
Compute solution explorer diagnostic descriptors in OOP process.#79802CyrusNajmabadi merged 7 commits intodotnet:mainfrom
Conversation
| } | ||
| } | ||
|
|
||
| private async Task<(ImmutableArray<BaseItem>, ImmutableArray<BaseItem>)> GetLatestItemsAsync( |
There was a problem hiding this comment.
definitely view with whitespace off.
|
@jasonmalinowski ptal. |
| using Microsoft.VisualStudio.Language.Intellisense; | ||
| using Microsoft.VisualStudio.Shell; | ||
| using Roslyn.Utilities; | ||
| using VSLangProj140; |
There was a problem hiding this comment.
Removed in followup pr.
| async ValueTask<ImmutableArray<DiagnosticDescriptor>> GetDiagnosticDescriptorsAsync() | ||
| { | ||
| // Call out to oop to do this if possible. This way we don't actually load the analyzers in proc. | ||
| // this also allows |
| var analyzerReference = project.AnalyzerReferences | ||
| .First(r => r.FullPath == analyzerReferenceFullPath); |
There was a problem hiding this comment.
Do we not support sending an AnalyzerReference across the wire directly?
There was a problem hiding this comment.
not currently. since an AnalyzerRef can truly be just an in-memory object (this is how tests often work for example) as opposed to something necessarily backed by a file/bytes. This is similar to MetadataReference which has PortableExecutionReference, and this is similar to how we have handled those sorts of entities in the past between processes.
Note: syncing is able to send hte bytes over (if a reference backed by bytes), but API calls then need an appropriate way to reference that entity (which uses file paths).

This is needed so that hte VS ui properly updates when analyzers change on disk.