自动在Visual Studio 2010中打开区域

7
我希望在打开代码文件时,Visual Studio窗口中显示的区域默认展开。在VS2010中是否有这个选项,或者有没有扩展插件可以实现?如果没有,是否可以编写一个插件来实现我的要求?

唯一内置的功能是完全关闭区域。有限的宏支持可用于定义自己的大纲。 - user180326
5个回答

8
如果您想关闭区域,请右键单击任何代码窗口,选择“Outlining”,然后选择“Stop Outlining”。

这种方法可以工作,但我希望有一个更持久、全局的解决方案。 - thepaulpage
请查看这个Visual Studio扩展,它可以自动展开所有区域:https://dev59.com/bnVD5IYBdhLWcg3wBWzd - Dirk Vollmar

2

您可以编写一个宏,在每次打开文档时调用Visual Studio命令Edit.StopOutlining

这个MSDN页面介绍了如何编写处理事件的基本宏:http://msdn.microsoft.com/en-us/library/ee1f34as.aspx 不要处理WindowClosing,而应该处理WindowActivated

像这样:

Public Sub windowopen(ByVal window As EnvDTE.Window, ByVal lostFocus As EnvDTE.Window) Handles WindowEvents.WindowActivated
    DTE.ExecuteCommand("Edit.StopOutlining")
End Sub

当然,这将在您打开的每个窗口上调用Edit.StopOutlining;因此,您可能需要进行一些过滤以确定激活的文档类型。

我想,如果我不能在首选项中轻松更改,那么这样做就是必须的。 - thepaulpage
文章引用的 MSDN 页面实际上是 http://msdn.microsoft.com/en-us/library/ee1f34as(v=VS.90).aspx。 - Keith K

2

1
创建一个仅扩展 C# 文件所有区域的宏,请执行以下操作。
  1. 从工具 > 宏 > 宏 IDE... 中打开 Visual Studio 宏窗口。

  2. 在项目资源管理器中的 EnvironmentEvents.vb 文件中(如果没有则创建一个新模块将自动出现),在自动生成代码区域后添加以下代码:

    Private Sub WindowEvents_WindowActivated(ByVal GotFocus As EnvDTE.Window, ByVal LostFocus As EnvDTE.Window) Handles WindowEvents.WindowActivated
    If GotFocus.Document.FullName.EndsWith(".cs") Then
        DTE.ExecuteCommand("Edit.StopOutlining")
    End If
    

    End Sub

  3. 保存并构建项目。

如果您需要更多有关宏的帮助,请阅读此 MSDN 页面以获取更多信息。
目前我正在处理这个宏的一个问题,即如果您在解决方案资源管理器中单击任何文件,VS 将自动打开它。

1

对于较新的Visual Studio版本(例如2015,但也适用于2010),有一个名为我讨厌#区域的扩展。您可以通过工具>扩展和更新>在线下载并安装它。它自动扩展所有区域并降低区域标签的字体大小。希望能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接