我正在寻找一种方法来编写一个宏事件来解析用户的代码
例如,当程序员编写一些特定代码时,此事件将解析代码行,如果匹配正则表达式,则会在活动文档中插入一些其他代码。
我怎么能得到孔线代码以及我应该使用哪个事件?
答案 0 :(得分:2)
您可以使用TextDocumentKeyPressEvents.AfterKeyPress事件。用户在文本编辑器中按任意键后,将触发以下宏。然后它获得当前行。此示例测试,如果该行包含“hello”文本,如果是,则显示消息框中的行。
Private Sub TextDocumentKeyPressEvents_AfterKeyPress(ByVal Keypress As String, _
ByVal Selection As EnvDTE.TextSelection, ByVal InStatementCompletion As Boolean) _
Handles TextDocumentKeyPressEvents.AfterKeyPress
Try
Dim line As String
Dim aPoint As EditPoint = Selection.ActivePoint.CreateEditPoint
Dim startPoint As EditPoint = aPoint.CreateEditPoint
startPoint.StartOfLine()
Dim endPoint As EditPoint = aPoint.CreateEditPoint
endPoint.EndOfLine()
line = startPoint.GetText(endPoint)
If line.Contains("hello") Then
MsgBox(line)
End If
Catch ex As Exception
End Try
End Sub
创建并应用此宏:
答案 1 :(得分:-1)
Macros可以响应某些事件,但是,我不认为文本输入是其中之一,更好的方法可能是使用代码段 - http://msdn.microsoft.com/en-us/library/ms165392(v=VS.100).aspx
它们将允许您定义关键字,然后将文本添加到编辑器中。 一个很好的例子是属性片段;在你的编辑器中输入'prop',然后按Tab键(在C#中两次,在VB中一次)来调用。
以下是可用代码段的更详细列表: http://msdn.microsoft.com/en-us/library/z41h7fat(v=VS.100).aspx