microsoft / microsoft/vscode-cpptools
Header-only fallback incorrectly occurs when system headers are opened using compileCommands
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 6.2k
- Forks
- 1.7k
- Ø Merge
- 14 Std. 46 Min.
- Gemergte PRs (30 T.)
- 61
Beschreibung
Use test.cpp
#include <string>
int main()
{
std::string s;
}
with some compile_commands.json like
[
{
"directory": "<dir>",
"command": "C:\\PROGRA~2\\MICROS~3\\2017\\ENTERP~1\\VC\\Tools\\MSVC\\1416~1.270\\bin\\Hostx86\\x86\\cl.exe -c sub.cpp",
"file": "sub.cpp"
}
]
Then use Go to Definition on std::string.
Bug: The TU for xstring gets opened as a header only fallback instead of using the existing TU for sub.cpp.
This bug doesn't repro when using the CMake Tools configurationProvider.
Bug2 in https://github.com/microsoft/vscode-cpptools/issues/5506 is related.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das Problem mit test.cpp, dem gezeigten compile_commands.json-Eintrag für sub.cpp und Go to Definition auf std::string. Verfolge, warum xstring als header-only fallback geöffnet wird, statt die vorhandene sub.cpp-Übersetzungseinheit zu verwenden; abgeschlossen bedeutet, dass der compile_commands-Pfad die vorhandene TU auflöst und dem Verhalten von CMake Tools configurationProvider entspricht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100