我的组织必须遵守极其严格和严格的规则才能获得认证和认证.在过去十年左右的时间里,我们开发了近百个VS宏,它们可以格式化代码,生成注释块,强制执行样式规则等.
我们的宏不是你记录鼠标移动的那种; 它们都依赖于EnvDTE*VS自动化对象.随着VS 2012丢弃宏,我们不知道我们是否能够升级,而不会对团队造成严重影响.
我知道微软的方向是VS Addins路由,我愿意调查这条路线,但是我无法找到有关VS加载项如何与Visual Studio中的活动代码文件进行交互的代码示例或文档.
例如,这是一个我们一直使用的宏,它将Try包装器设计模式应用于所有能够抛出未处理异常的方法
''' <summary>
''' Wraps active method in Try* access wrappers.
''' </summary>
Sub InsertSingleMethodTryWrappers()
Dim textSelection As TextSelection
Dim codeElement As CodeElement
textSelection = DTE.ActiveWindow.Selection
DTE.UndoContext.Open("Generate Try Wrappers") 'Allow for single Undo operation to rollback all changes
Try
codeElement = textSelection.ActivePoint.CodeElement(vsCMElement.vsCMElementFunction)
If Not (codeElement Is Nothing) Then
Dim textSelection2 As TextSelection
Dim codeFunction As CodeFunction
'Dim codeFunction2 As CodeFunction2
Dim editPoint As EditPoint
Dim codeParameter As CodeParameter
Dim parameters As CodeElements
Dim …Run Code Online (Sandbox Code Playgroud)