如何在 Visual Studio 2010 中自动折叠某些评论?
Posted
技术标签:
【中文标题】如何在 Visual Studio 2010 中自动折叠某些评论?【英文标题】:How to auto-collapse certain comments in Visual Studio 2010? 【发布时间】:2011-04-09 01:10:10 【问题描述】:我的一位同事使用 abomination 文本编辑器,该编辑器通常会在整个代码中留下注释块。不用说,这让我很生气。评论块如下所示:
/* EasyCODE ) */
/* EasyCODE ( 0
WndProc */
/* EasyCODE F */
即它们都以EasyCODE
开头,并且大多数跨越几行。值得庆幸的是,VS2010 可以折叠评论块,所以我不必必须一直看到它们。
有没有办法实现自动化?一种自动折叠所有这些可怕的EasyCODE
块的方法将是天赐之物!
【问题讨论】:
有没有办法让你的同事每次使用所说的可憎之物时都会让他感到震惊? :) 如果它用不可读和无用的 cmets 使每个人的代码变得混乱,也许更好的解决方案是说服您的同事停用此功能,或更改他的编辑器。 @ereOn:可悲的是,那个编辑器严重依赖这些 cmets。它用奇怪的、机器可读的 cmets 代替了漂亮的、人类可读的代码。 只是出于好奇,那个编辑器是什么? @ereOn:嗯,它叫EasyCODE。它基本上是基于结构图的编程,它使用这些注释块来构建代码。 【参考方案1】:您无法自动执行此操作。但是,您可以选择一段代码,然后从上下文菜单中选择大纲/隐藏选择 (Ctrl+M Ctrl+H)。所以选择丑陋的 cmets 并这样做。
取自here。
【讨论】:
【参考方案2】:这是一个应该做的宏。有一些更奇怪的 EasyCode cmets,它没有捕捉到,但大多数情况下都能解决问题。
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a ' remove for VS2008
Imports EnvDTE100 ' remove for VS2008
Imports System.Diagnostics
Imports System.Collections.Generic
Public Module HideEasyCODEComments
''
'' Collapse all EasyCODE comment blocks
''
Sub ToggleSummaryCommentsOutlineExpansion()
If (DTE.ActiveDocument Is Nothing) Then
Exit Sub
End If
If (DTE.UndoContext.IsOpen) Then
DTE.UndoContext.Close()
End If
DTE.SuppressUI = True
Try
DTE.UndoContext.Open("ToggleSummaryCommentsOutline")
Catch
End Try
Dim objSelection As TextSelection = DTE.ActiveDocument.Selection
Dim line As Integer = objSelection.CurrentLine
objSelection.StartOfDocument()
' find all EasyCODE blocks
While objSelection.FindText("^.*\/\* EasyCODE.*((\n.*\*\/)|(\n.*\/\*.*)|(\n\/\/.*))*", vsFindOptions.vsFindOptionsRegularExpression)
DTE.ExecuteCommand("Edit.HideSelection")
End While
objSelection.StartOfDocument()
objSelection.GotoLine(line)
DTE.UndoContext.Close()
DTE.SuppressUI = False
End Sub
End Module
在宏IDE(Tools->Macros->Macro IDE)中新建一个宏,把上面的代码粘贴进去,然后给它分配一个快捷键(Tools->Options->Environment->Keyboard,搜索它在列表框中)。点击键盘快捷键,所有 EasyCode cmets 都将消失。
玩得开心!
【讨论】:
宏有什么作用?任何链接以上是关于如何在 Visual Studio 2010 中自动折叠某些评论?的主要内容,如果未能解决你的问题,请参考以下文章
如何在visual studio中自定义dataGridView单元格
在 Visual Studio Code 中自定义语法突出显示
如何在 Visual Studio 2008 或 Visual Studio 2010 中设置 JavaScript 断点
如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?
关于在Visual Studio2010中如何卸载Visual Asixist这个插件?为啥将它卸载后Visual Studio启动后仍然有