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

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

【问题讨论】:

    标签: c++ visual-studio


    【解决方案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#、Javascript 和 PHP,所以没有尝试过。扩展的源代码链接在这里:github.com/Skybladev2/C--outline-for-Visual-Studio
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 2010-12-06
      • 2010-11-20
      相关资源
      最近更新 更多