Skip to content

Move CSharpDiagnosticAnalyzerQuickInfoProvider to EditorFeature#60266

Merged
JoeRobich merged 1 commit intodotnet:mainfrom
JoeRobich:move-quickinfo-provider
Mar 19, 2022
Merged

Move CSharpDiagnosticAnalyzerQuickInfoProvider to EditorFeature#60266
JoeRobich merged 1 commit intodotnet:mainfrom
JoeRobich:move-quickinfo-provider

Conversation

@JoeRobich
Copy link
Copy Markdown
Member

@JoeRobich JoeRobich commented Mar 18, 2022

With DiagnosticAnalyzerService moved to the LSP layer, the MEF imports of this QuickInfo provider cannot be met with just the Feature layer.

@JoeRobich JoeRobich requested a review from a team as a code owner March 18, 2022 23:10
@ghost ghost added the Area-IDE label Mar 18, 2022
@JoeRobich JoeRobich enabled auto-merge March 19, 2022 01:27
@JoeRobich JoeRobich merged commit c570258 into dotnet:main Mar 19, 2022
@ghost ghost added this to the Next milestone Mar 19, 2022
@allisonchou allisonchou modified the milestones: Next, 17.2.P3 Mar 28, 2022
333fred added a commit to 333fred/roslyn that referenced this pull request Aug 14, 2022
… and DiagnosticAnalyzerServiceQuickInfoProvider

In dotnet#60266, the CSharpDiagnosticAnalyzerServiceQuickInfoProvider was moved to the EditorFeatures layer because DiagnosticAnalyzerService was moved to the protocol layer, breaking MEF composition for the provider. This broke the feature in O#, however, and users reported OmniSharp/omnisharp-roslyn#2397. In investigating the service, I realized that the only thing the provider required is the cache from the DiagnosticAnalyzerService, which is a type that exists in the Workspaces layer. To fix this, I'm introducing shared export cache, so both quick info provider and analyzer service can share this instance, while allowing the provider to move back down to the features layer. Fixes OmniSharp/omnisharp-roslyn#2397.
333fred added a commit that referenced this pull request Aug 16, 2022
… and DiagnosticAnalyzerServiceQuickInfoProvider (#63392)

* Share a DiagnosticAnalyzerInfoCache between DiagnosticAnalyzerService and DiagnosticAnalyzerServiceQuickInfoProvider

In #60266, the CSharpDiagnosticAnalyzerServiceQuickInfoProvider was moved to the EditorFeatures layer because DiagnosticAnalyzerService was moved to the protocol layer, breaking MEF composition for the provider. This broke the feature in O#, however, and users reported OmniSharp/omnisharp-roslyn#2397. In investigating the service, I realized that the only thing the provider required is the cache from the DiagnosticAnalyzerService, which is a type that exists in the Workspaces layer. To fix this, I'm introducing shared export cache, so both quick info provider and analyzer service can share this instance, while allowing the provider to move back down to the features layer. Fixes OmniSharp/omnisharp-roslyn#2397.

* Move the service files.

* Fix test project.
@JoeRobich JoeRobich deleted the move-quickinfo-provider branch March 14, 2025 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants