Быстрый и простой способ удалить "мертвый" (прокомментированный) код
Я работаю с унаследованной базой кода, содержащей тысячи строк кода с комментариями. Я знаю, что предыдущий кодер хотел сохранить всю свою тяжелую работу для потомков, а не просто удалить его, но: я никогда не прочитаю его, и он просто мешает. Один из примеров проблемы заключается в том, что когда я выполняю текстовые поиски определенных сегментов кода, я получаю десятки "ложных" обращений в прокомментированном коде. PITA.
Есть ли быстрый/простой способ обнаружения больших блоков кода с комментариями? Возможно, умный RegEx?
В настоящее время я работаю в VB.NET, а символ комментария - это один апостроф.
Ответы
Ответ 1
Вы можете использовать поиск регулярных выражений. Поиск
^.*'.*$
Чтобы найти одну строку с комментарием. Вероятно, вы захотите найти не менее 3 строк, начинающихся с комментария:
^.*'.*\n.*'.*\n.*'.*$
Держите кошку подальше от вашей клавиатуры.
Ответ 2
Боюсь, я согласен с duffymo. Я не думаю, что вы найдете надежный автоматический способ удаления прокомментированного кода. Я уверен, что если вы будете искать достаточно сильно, вы найдете его, но ваше время будет лучше потрачено на вашу работу.
Я был в этой ситуации в прошлом (слишком часто), и то, что я делаю, это удаление кода с комментариями, когда я работаю над различными модулями.
В качестве примера я открываю класс Person, чтобы внести изменения, и я вижу код с комментариями, который еще предстоит удалить. Я проверяю код (мы используем VSS), удаляем плохой код, проверяем его и, наконец, проверяем его на выполнение моей работы.
Требуется время, прежде чем все пройдет, но я считаю, что это эффективное время для решения проблемы.
Ответ 3
(^\s*//.*\n)^10
Найдите 10 параллельных пронумерованных строк стиля //
.
Прокомментированные тесты:
\s*//\s*\[Test\].*\n
Ответ 4
MZ-tools имеет возможность просмотреть мертвый код.
Ответ 5
Для всех пользователей С#, которые здесь заканчиваются, используйте следующее регулярное выражение, чтобы найти прокомментированные строки.
(^|[^/])//[^/]
Ответ 6
Для чего нужны системы управления версиями.
Я бы удостоверился, что он находится под контролем версий (надеюсь, что это не Visual Source Safe), проверьте его, удалите весь прокомментированный код и проверьте его обратно.
Я бы также отменил практику в вашей команде разработчиков на будущее.
Ответ 7
Я бы предложил написать или найти макрос для Visual Studio, который поможет удалить комментарии.
Некоторая псевдо-логика:
- начинать с номера строки, читать первый символ. помните этот номер строки.
- если это символ комментария VB
'
, а затем продолжить
- читать следующую строку первого символа. если символ комментария, продолжайте.
- при поиске строки, которая не является символом комментария, проанализируйте количество пройденных строк.
- если количество пройденных строк соответствует вашему порогу n, а затем удалите их.
Ответ 8
Я знаю, что это старый поток, но трюк, который помогает мне, не упоминался.
Я ищу это регулярное выражение:
(^\с *. =.\П) ^
Он находит прокомментированные строки, содержащие знак равенства. Мой опыт заключается в том, что большинство блоков кода с комментариями содержат по крайней мере одну строку с назначением и что эквивалентные знаки в реальных комментариях встречаются довольно редко.
Я не автоматизирую замену, я просто нажимаю F3, и если она совпадает с одной строкой, я просто нажимаю клавишу ввода, чтобы заменить выделенный текст на новую строку. Если он приземляется на линию, которая является частью блока прокомментированных строк, тогда я просто выбираю вручную, снова нажимаю Enter и F3.