microsoft / microsoft/vscode-cpptools

IntelliSense fails to find headers using cl.exe #include "" Microsoft-specific search rules (i.e. -Wmicrosoft-include)

Offen
#8,296 2 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@sean-mcmanus arbeitet bereits daran.

Seit 18.12.2024.

bug Feature: Configuration investigate: repro Language Service
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Disable recursive includes and use msvc or clang mode.

  • root
    • sub1 (folder)
      • sub1_2.h
      • sub1.h
    • sub2 (folder)
      • sub2.h
    • main.cpp

main.cpp
#include "sub1/sub1.h"

sub1.h
#include "sub2/sub2.h"

sub2.h
#include "sub1_2.h"

Bug: This compiles with cl.exe (and clang, although it gives the warning from -Wmicrosoft-include), but IntelliSense fails to find the headers. See documentation at https://docs.microsoft.com/en-us/cpp/preprocessor/hash-include-directive-c-cpp?view=msvc-160 . The code isn't compilable with gcc, so it's non-portable, i.e. not recommended for new code, but legacy code might rely on the behavior.

I haven't checked if this repros with VS, and I'm not sure if it's a bug with our shared parser or if we're expected to emulate the search order ourselves.

I found this issue while investigating how to correctly deal with the clang-tidy include processing.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.