microsoft / microsoft/vscode-cpptools

Code folding with `//#region` and `//#endregion`

Aperta
#7,511 16 commenti 32 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

Descrizione

Type: Feature Request

Please make //#region and //#endregion folding available on VSCode for C/C++ too.

Feature request suggested by @Colengms in https://github.com/microsoft/vscode/issues/123016#issuecomment-837074185_

The documentation describes that C/C++ region should be defined with #pragma region and #pragma endregion, although many C/C++ application complain about unknown pragma, generating many warnings. In the very same documentation, the default for many languages is //#region and //#endregion which is definitely the very best choice for C/C++. There are VS Code extensions like this that try to fix these annoying issue, but they create other problems, since single line comments should never use /* */, it makes harder to comment out a block with regions inside.

  • Using #pragma region almost always require to disable unknown pragmas with the compiler flag -Wno-unknown-pragmas, which may hide useful warnings such as the typo #pragma ocne.
  • GCC is one of the most famous compiler, and still there are recently complaining about the need to disable unknown pragmas in order to use #pragma region.
  • There are even cases of compilations bugs with the use of #pragma region such as this. Which would never happen if //#region would be a default.
  • The number of people trying to find workarounds are getting ridiculous at this point, there are people even using #ifndef MY_REGION_NAME ... #endif, which may lead to pieces of code being ignored by the compiler if the region is a duplicate name.
  • This issue uses an example of C/C++ where it tries the intuitive region folding (#region inside line comment), but VSCode fails to fold, since #pragma region should have been used instead.

VS Code version: Code 1.55.2 (3c4e3df, 2021-04-13T09:35:57.887Z)
OS version: Windows_NT x64 6.1.7601
ms-vscode.cpptools Version 1.3.1: April 19, 2021

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 dal supporto al folding di C/C++ nell’estensione e confronta la sua gestione con la sintassi delle regioni descritta nella documentazione codebasics di VS Code e con gli esempi di folding collegati. Il lavoro è terminato quando //#region e //#endregion vengono chiusi correttamente per C/C++ senza richiedere direttive #pragma e il comportamento è stato verificato nell’estensione.

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

Valutazione

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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.