Поиск по регулярным выражениям в Visual Studio 2010 - PullRequest
0 голосов
/ 28 июня 2011

Я не уверен, возможно ли это в VS, но я работаю с массивным файлом VB.NET, который должен регистрировать каждый вызов функции для целей отладки. Проблема в том, что не у каждой функции есть команда Log. Я пытаюсь использовать RegEx, чтобы найти определения функций, в которых нет журнала.

Это НЕ будет совпадением:

Public Function Test1() as Boolean
    Log.Tracelog("Test1()")
    Return True
End Function

Это БЫЛО совпадение:

Public Function Test2() as Boolean
    Return False
End Function

Самое близкое, что я получил, - это следующее:

(function|sub|property) .*\n.*~(Log\.t)

По-моему, это должно сработать, но как бы я это ни говорил, оно все равно вытягивает все функции как совпадающие, даже те, у которых в функции есть вызов Log.Tracelog.

Могу ли я найти последний случай?

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Попробуйте:

(function|sub|property) .*\n~(.*Log\.t)

Я переместил .* непосредственно перед ~() (warnmatch) прямо внутрь него.

1 голос
/ 28 июня 2011

Почему бы не использовать методы debug.WriteLine для функций, которые вы хотите зарегистрировать.Вы также можете использовать стек для получения имени метода:

    Private Function test1() As Boolean
    Debug.WriteLine(New System.Diagnostics.StackTrace().GetFrame(0).GetMethod.Name)
    Return False
End Function

Тогда сообщения выводятся только при отладке и только в тех методах, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...