-
Notifications
You must be signed in to change notification settings - Fork 677
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[O# Parity] Dedupe build and live diagnostics #5728
Comments
Moving to Becca since this in the LSP layer. This will be a GA blocker. |
The problem here is that DevKit extension reports the msbuild problems, and C# extension reports the Roslyn problems. VS Code doesn't allow the Roslyn extension to overwrite results from the DevKit extension. The DevKit extension uses the mscompile problem matcher to report problems to VS Code. There isn't a way for us to tap into the results of this problem matcher. This will require us to write a custom task via VS Code's API for MSBuild that exposes the problem matcher |
This is O# parity problem. So our plan is to focus on long term solution here instead of a short term woraround. So pushing out milestone. |
Discussed this offline with @beccamc and we believe the following work is required here:
Hopefully, above design should be doable to address this issue. I did have one question for @dibarbet @beccamc - is it possible to implement the custom task/problem matcher mentioned in 2. above in the C# extension itself? If so, we can move bulk of all the work into the C# extension, and just need to expose a simple "build command invoked" eventing API from it. C# devkit extension would invoke this API with the given project or solution name/node and let the C# extension do everything required. |
This is great, thanks @mavasani! From my understanding, the custom task/problem matcher will need to be in the C# Devkit extension. However, moving it to the C# extension is a great idea and I will look into it. David please chime in if you have any other info. |
Work towards dotnet/vscode-csharp#5728 Exposes an LSP API to fetch build-only diagnostic IDs for the given solution snapshot. This API will be invoked from VSCode C# extension on execution of explicit build/rebuild commands to separate out build-only and live diagnostics. See dotnet/vscode-csharp#5728 (comment) for details.
Work towards dotnet/vscode-csharp#5728 Exposes an LSP API to fetch build-only diagnostic IDs for the given solution snapshot. This API will be invoked from VSCode C# extension on execution of explicit build/rebuild commands to separate out build-only and live diagnostics. See dotnet/vscode-csharp#5728 (comment) for details.
Work towards dotnet#5728. Follow-up to dotnet/roslyn#69475. C# extension can now invoke `getBuildOnlyDiagnosticIds` API after each explicit build/rebuild command to identify build-only diagnostic IDs.
* Add BuildOnlyDiagnosticIds LSP request handler Work towards dotnet/vscode-csharp#5728 Exposes an LSP API to fetch build-only diagnostic IDs for the given solution snapshot. This API will be invoked from VSCode C# extension on execution of explicit build/rebuild commands to separate out build-only and live diagnostics. See dotnet/vscode-csharp#5728 (comment) for details. * Add build-only compiler diagnostics only for the project languages in the solution + address feedback * Add unit tests
Implemented a custom task in Devkit that parses the build results into a format that can be easily turned into Diagnostic objects (see Devkit dev/beccam/dedupeDiagnostics). These results need to be passed to C# via brokered service. Then bucketized via the new getBuildIdsOnly api and added into a new diagnostic collection. |
This item requires updates to multiple components. It is in progress.
|
When you run a build, problems will be added to the problem window. However once the error is fixed, the errors won't disappear until a new build is run. We should remove these build errors when the next live diagnostics request.
Roughly how this might work in vscode
The text was updated successfully, but these errors were encountered: