microsoft / microsoft/vscode-cpptools
Code folding with `//#region` and `//#endregion`
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
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 regionalmost 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 regionsuch as this. Which would never happen if//#regionwould 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 (
#regioninside line comment), but VSCode fails to fold, since#pragma regionshould 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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the C/C++ folding support in the extension and compare its handling with the region syntax described in the VS Code codebasics documentation and the linked folding examples. Done means //#region and //#endregion fold correctly for C/C++ without requiring #pragma directives, with behavior verified in the extension.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100