Я работаю с наследованной кодовой базой, которая содержит тысячи строк закомментированного кода. Я знаю, что предыдущий кодер означал сохранять всю свою тяжелую работу для потомства вместо того, чтобы просто удалить его, но: Я никогда не буду читать его, и это просто мешает. Один проблемный пример - то, что, когда я выполняю, текстовые поиски определенных сегментов кода I получают десятки "ложных" хитов в прокомментированном коде. ЛАВАШ.
Существует ли быстрый / простой способ обнаружить большие блоки закомментированного кода? Умный RegEx, возможно?
Я, оказывается, работаю в VB.NET в это время, и символ комментария является единственным апострофом.
Вы можете использовать поиск по регулярному выражению. Найдите
^.*'.*$
, чтобы найти одну строку с комментарием. Вы, вероятно, захотите найти как минимум 3 строки, начинающиеся с комментария:
^.*'.*\n.*'.*\n.*'.*$
Не подпускайте кошку к клавиатуре.
Боюсь, я согласен с duffymo. Я не думаю, что вы найдете надежный автоматический способ удалить закомментированный код. Я уверен, что если вы будете искать достаточно усердно, вы найдете его, но ваше время лучше потратить на работу.
Я был в этой ситуации в прошлом (слишком часто), и в конечном итоге я удаляю закомментированный код, когда работаю над различными модулями.
В качестве примера я открываю класс Person, чтобы внести изменения, и вижу закомментированный код, который еще предстоит удалить. Я проверяю код (мы используем VSS), удаляю плохой код, проверяю его и, наконец, проверяю, чтобы выполнить свою работу.
Прежде чем все это исчезнет, нужно время, но я считаю, что это эффективное использование времени для решения проблемы.
Для этого и нужны системы контроля версий.
Я бы удостоверился, что он находится под контролем версий (надеюсь, не в Visual Source Safe), проверил его, удалил весь закомментированный код и вернул его обратно.
Я также не одобряю такой практики в вашей разработке команда будущего.
Я бы предложил написать или найти макрос для Visual Studio, который поможет удалять комментарии.
Немного псевдологики:
'
, то продолжить(^\s*//.*\n)^10
Найдите 10 параллельных закомментированных строк стиля //
.
Закомментированные тесты:
\s*//\s*\[Test\].*\n