如何在 Visual Studio 2008 中折叠选定的代码块?

Posted

技术标签:

【中文标题】如何在 Visual Studio 2008 中折叠选定的代码块?【英文标题】:How do I collapse selected chunks of code in Visual Studio 2008? 【发布时间】:2009-10-26 17:14:04 【问题描述】:

在 Visual Studio 2008 中:有没有办法让我自定义折叠代码位,类似于我如何自动折叠 cmets 块?

【问题讨论】:

【参考方案1】:

您的代码需要是一个块,根据需要被包围:

大括号 C# 中的#region#endregion C/C++ 中的#pragma region#pragma endregion

如果不能折叠语句块,则需要启用此功能:

工具 -> 选项 -> 文本编辑器 -> C/C++ -> 格式化 -> 检查“大纲”中的所有内容

(在 Visual Studio 2013 中是工具 -> 选项 -> 文本编辑器 -> C/C++ -> 视图)

然后,重新打开源文件以重新加载大纲。

【讨论】:

嗯,它工作得很好,但不幸的是,它本质上是从我的程序中注释掉整个代码块。我希望能够折叠工作代码。当我想添加一个条件(一个 if 语句)来激活一大块代码而不将其放入函数中时,这尤其有用(它不作为一个函数工作,所以我没有把它作为一个函数)。 它更像是放入新的 if 语句。我的程序中的循环太多了(我认为它大约有 10 个嵌套循环 + 一大堆其他 if 语句)并且它很难跟踪里面的内容。如何折叠循环和 if 语句? 我不确定您为什么认为它正在注释掉代码。您应该能够使用 #pragma region 语句来创建可折叠的工作代码块。【参考方案2】:

TheSam 是对的,您可以使用#pragma region 和#pragma endregion 语句创建可折叠的块。

这是一个示例:

int main(array<System::String> args)



    Console::WriteLine(L"This");
    Console::WriteLine(L"is");
    Console::WriteLine(L"a");
    #pragma region
    Console::WriteLine(L"pragma");
    Console::WriteLine(L"region");
    #pragma endregion

    Console::WriteLine(L"test.");
    return 0;

在上面的示例中,示例之间的所有内容都可以折叠。

您还可以指定折叠时显示的文本。你可以这样做:

#pragma region The displayed text

当区域折叠时,显然会显示“显示的文本”。

【讨论】:

【参考方案3】:

这个扩展是为 Visual Studio 中的工作而制作的: http://visualstudiogallery.msdn.microsoft.com/4d7e74d7-3d71-4ee5-9ac8-04b76e411ea8

【讨论】:

@Amjad - 开发人员在问答中表示,它可以快速修复源代码以使用 C++/C 代码。您只需要明显地更改语言亲和力属性。我只将 VisStudio 用于 C#、javascriptphp,所以没有尝试过。扩展的源代码链接在这里:github.com/Skybladev2/C--outline-for-Visual-Studio

以上是关于如何在 Visual Studio 2008 中折叠选定的代码块?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2008 或 Visual Studio 2010 中设置 JavaScript 断点

visual studio 2008如何引用dll

如何在visual studio2008中创建,编译和运行C++程序,

如何在 Visual Studio 2008 中自动删除尾随空格?

Visual Studio 2008 / C#:如何在项目中查找死代码?

如何在 Visual Studio 2008 中折叠选定的代码块?