问题
In VisualStudio, when you write a function it can collapse to outlines, everyone knows it. Also you can use #pragma region
and #pragma endregion
to manually specify a code region so that it can collapse. However I found a problem that, if any collapsed code blocks are within the #pragma region
, they cannot collapse anymore. Is there any way to solve it?
回答1:
There are several other also better and flexible ways than #pragma region
you can do to collapse code in VS:
Method 1: Use {...}
instead which natively supports code collapsing in VS.
Enable option:
Tools->Text Editor->C/C++->Formatting->OutLine Statement Blocks->True
.Put your in different scopes
{...}
, then it will collapse the code in different scopes:
Method 2: use keyboard shortcuts to collapse code you want:
CTRL + M + O will collapse all.
CTRL + M + L will expand all.
CTRL + M + P will expand all and disable outlining.
CTRL + M + M will collapse/expand the current section.
It is worthy noting that method #1 works better for plain code snippets. For functions, because similar to that we cannot have functions inside functions in C++, we cannot put functions in scope defined by {...}
. Fortunately, we can still use method #1 for functions by creating namespaces for each scope. Or simply, use method #2.
回答2:
Yeah that problem exist
One workaround which sometimes works is to use outlining -> collapse to definitions, then re-expand each block.
来源:https://stackoverflow.com/questions/21004631/about-collapsing-code-block-in-visual-studio-using-pragma-region