Improve diagnostics.source.#14500
Conversation
There was a problem hiding this comment.
Pull request overview
Refines the diagnostic.source strings used for diagnostics emitted by the C/C++ extension so consumers (e.g. Copilot) can distinguish IntelliSense, clang-tidy, and refactor diagnostics from generic "C/C++" compiler diagnostics. Introduces a new CppIntelliSenseSourceStr constant and updates the missing-include detection to match the new source value.
Changes:
- Add
CppIntelliSenseSourceStr("C/C++ IntelliSense") and updateisMissingIncludeDiagnosticto compare against it. - Tag clang-tidy and refactor diagnostics with more specific source strings ("C/C++ clang-tidy", "C/C++ Refactor").
- Set IntelliSense diagnostics' source to
CppIntelliSenseSourceStrinDefaultClient.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| Extension/src/LanguageServer/extension.ts | Adds the CppIntelliSenseSourceStr constant and updates the missing-include diagnostic check to use it. |
| Extension/src/LanguageServer/codeAnalysis.ts | Tags clang-tidy diagnostics with the more specific "C/C++ clang-tidy" source. |
| Extension/src/LanguageServer/client.ts | Imports the new constant, tags refactor diagnostics with "C/C++ Refactor", and sets IntelliSense diagnostics' source to CppIntelliSenseSourceStr. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
I want to make sure @bobbrow is okay with this before checking it in. |
|
Abandoned in favor or some alternative fix which allows us to tell Copilot specifically that the error is not a compiler error and is from our IntelliSense parser (which could be invalid/etc.). |
This is primarily for if/when microsoft/vscode#319418 gets fixed so Copilot can more easily know it's a not an actual C/C++ compiler error.
...but I figured it might help new users as well.