microsoft / microsoft/vscode-cpptools

Inactive code regions with #include fail

Aperta
#13,029 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug Language Service Visual Studio
Lingua principale
TypeScript
Stelle
6.2k
Fork
1.7k
Merge medio
14h 46m
PR unite (30g)
61

Descrizione

Environment
  • OS and Version: W10
  • VS Code Version: 1.95.3
  • C/C++ Extension Version: 1.22.11 and also 1.23.2 (pre release)
  • CMake Tools extension v1.19.52
Bug Summary and Steps to Reproduce

Bug Summary:

The disabled code region fail on simple case.
I'm using CMake and the MSVC 2022 C compiler, with the following simple code

#define USE_FIRST
#define USE_ANTYHING

#if defined(USE_FIRST)
    #include <stdio.h>
#elif defined(USE_SECOND)
    #include <stdio.h>
#else
    #error Either USE_FIRST or USE_SECOND must be defined
#endif

int main(int argc, char *argv[]) {
    printf("Main executed\r\n");
    return 0;
}

The normal output is the following:
Image

However sometimes it's failing
For example when you press one or two times the Ctrl+S (save file) then the disabled dimed area fail:
Image

Steps to reproduce:

You can check the simple code here to reproduce, it use CMake:
Bug.zip

Configuration and Logs
Here is the generated `c_cpp_properties.json`


{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.22000.0",
            "compilerPath": "cl.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}
Other Extensions

No response

Additional context

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia aprendo Bug.zip e riproducendo il problema con il progetto CMake fornito, quindi esamina il file c_cpp_properties.json generato e il codice condizionale mostrato nel report. Salva il file una o due volte e verifica che le regioni inattive contenenti #include rimangano correttamente attenuate anche dopo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, cmake, typescript
Ambito
developer-experience, tooling
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.