microsoft / microsoft/vscode-cpptools

Contents of `c_cpp_properties.json` file can get irrecoverably deleted

Aperta
#13,491 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Feature: Configuration investigate: repro Language Service
Lingua principale
TypeScript
Stelle
6.2k
Fork
1.7k
Merge medio
14h 46m
PR unite (30g)
61

Descrizione

Environment
  • OS and Version: Debian 6.1.0-32-amd64
  • VS Code Version: 1.98.2
  • C/C++ Extension Version: 1.24.5
  • If using SSH remote, specify OS of remote machine: N/A
Bug Summary and Steps to Reproduce

Bug Summary:
After stashing and restoring .vscode/c_cpp_properties.json through git, cpptools will re-populate it's contents with default value deleting old contents.
Also works when temporarily moving or renaming .vscode directory.

Steps to reproduce:

  1. Create empty project and initialize git.
    mkdir -p foo/.vscode
    cd foo
    touch main.c
    git init
    git add main.c
    git commit -m 'Initial commit'
    
  2. Populate c_cpp_properties.json. Just something that differs from the default.
    echo '{"configurations":[{"name":"Foo"}],"version":4}' > .vscode/c_cpp_properties.json
    
  3. Open project folder in vscode and edit main.c. You should see C/C++ configuration is "Foo".
  4. Without closing vscode, stash untracked files and then restore them.
    git stash -k -u
    git stash pop
    
  5. Switch back to main.c. You should see C/C++ configuration has changed to default ("Linux" in my case).
  6. Click C/C++: Edit Configurations (JSON) through bottom right corner or command palette. This action destroys contents of c_cpp_properties.json. If you'd instead close and re-open vscode, you'd be safe.
Configuration and Logs
{"configurations":[{"name":"Foo"}],"version":4}

[C++.log](https://github.com/user-attachments/files/19702057/C%2B%2B.log)
[C++ Diagnostics.log](https://github.com/user-attachments/files/19702056/C%2B%2B.Diagnostics.log)
Other Extensions
  • Vim
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

Riproduci il problema con .vscode/c_cpp_properties.json seguendo i passaggi indicati git stash -k -u e git stash pop, quindi usa C/C++: Edit Configurations (JSON) per confermare la sovrascrittura. Leggi i log C++ collegati mentre tracci il comportamento dell’estensione intorno alla configurazione ripristinata. Il lavoro è completato quando la configurazione personalizzata Foo rimane intatta dopo il ripristino e la modifica della configurazione JSON.

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

Valutazione

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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.