Как написать событие Visual Studio Macro для получения набранного пользователем кода? - PullRequest
0 голосов
/ 04 марта 2011

Я ищу способ написать макрос-событие для разбора кода пользователя.
например, когда программист пишет какой-то определенный код, это событие будет анализировать строку кода, а при совпадении регулярное выражение вставит некоторые дополнительные коды в активный документ.
Как я могу получить код дырки и какое событие мне использовать?

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Вы можете использовать событие TextDocumentKeyPressEvents.AfterKeyPress. Следующий макрос срабатывает после нажатия пользователем любой клавиши в текстовом редакторе. Затем он получает текущую строку. В этом примере проверяется, содержит ли строка текст «привет», и если да, то она отображается в окне сообщения.

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. Перейти в меню Инструменты - Макросы - Макросы IDE ...
  2. В Macros IDE Class View перейдите к MyMacros - {} MyMacros - EnvironmentEvents. Открыть (двойной щелчок) EnvironmentEvents.
  3. Вставьте этот код в модуль (непосредственно перед строкой End Module)
0 голосов
/ 10 марта 2011

Существуют события, на которые могут реагировать макросы, однако я не верю, что ввод текста является одним из них, лучше подойти к использованию фрагментов - 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

...