Быстрый и простой способ удалить "мертвый" (прокомментированный) код

Я работаю с унаследованной базой кода, содержащей тысячи строк кода с комментариями. Я знаю, что предыдущий кодер хотел сохранить всю свою тяжелую работу для потомков, а не просто удалить его, но: я никогда не прочитаю его, и он просто мешает. Один из примеров проблемы заключается в том, что когда я выполняю текстовые поиски определенных сегментов кода, я получаю десятки "ложных" обращений в прокомментированном коде. PITA.

Есть ли быстрый/простой способ обнаружения больших блоков кода с комментариями? Возможно, умный RegEx?

В настоящее время я работаю в VB.NET, а символ комментария - это один апостроф.

Ответы

Ответ 1

Вы можете использовать поиск регулярных выражений. Поиск

^.*'.*$

Чтобы найти одну строку с комментарием. Вероятно, вы захотите найти не менее 3 строк, начинающихся с комментария:

^.*'.*\n.*'.*\n.*'.*$

Держите кошку подальше от вашей клавиатуры.

Ответ 2

Боюсь, я согласен с duffymo. Я не думаю, что вы найдете надежный автоматический способ удаления прокомментированного кода. Я уверен, что если вы будете искать достаточно сильно, вы найдете его, но ваше время будет лучше потрачено на вашу работу.

Я был в этой ситуации в прошлом (слишком часто), и то, что я делаю, это удаление кода с комментариями, когда я работаю над различными модулями.

В качестве примера я открываю класс Person, чтобы внести изменения, и я вижу код с комментариями, который еще предстоит удалить. Я проверяю код (мы используем VSS), удаляем плохой код, проверяем его и, наконец, проверяем его на выполнение моей работы.

Требуется время, прежде чем все пройдет, но я считаю, что это эффективное время для решения проблемы.

Ответ 3

(^\s*//.*\n)^10

Найдите 10 параллельных пронумерованных строк стиля //.

Прокомментированные тесты:

\s*//\s*\[Test\].*\n

Ответ 5

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

(^|[^/])//[^/]

Ответ 6

Для чего нужны системы управления версиями.

Я бы удостоверился, что он находится под контролем версий (надеюсь, что это не Visual Source Safe), проверьте его, удалите весь прокомментированный код и проверьте его обратно.

Я бы также отменил практику в вашей команде разработчиков на будущее.

Ответ 7

Я бы предложил написать или найти макрос для Visual Studio, который поможет удалить комментарии.

Некоторая псевдо-логика:

  • начинать с номера строки, читать первый символ. помните этот номер строки.
  • если это символ комментария VB ', а затем продолжить
  • читать следующую строку первого символа. если символ комментария, продолжайте.
  • при поиске строки, которая не является символом комментария, проанализируйте количество пройденных строк.
  • если количество пройденных строк соответствует вашему порогу n, а затем удалите их.

Ответ 8

Я знаю, что это старый поток, но трюк, который помогает мне, не упоминался.

Я ищу это регулярное выражение:

(^\с *. =.\П) ^

Он находит прокомментированные строки, содержащие знак равенства. Мой опыт заключается в том, что большинство блоков кода с комментариями содержат по крайней мере одну строку с назначением и что эквивалентные знаки в реальных комментариях встречаются довольно редко.

Я не автоматизирую замену, я просто нажимаю F3, и если она совпадает с одной строкой, я просто нажимаю клавишу ввода, чтобы заменить выделенный текст на новую строку. Если он приземляется на линию, которая является частью блока прокомментированных строк, тогда я просто выбираю вручную, снова нажимаю Enter и F3.