Подтвердить что ты не робот

Как я могу выполнить поиск в Visual Studio и заставить его игнорировать то, что закомментировано?

Я рефакторинг базы данных С++ в Visual Studio 2005. Я уже почти половину этого процесса, и я прокомментировал много старого кода и заменил или переместил его. Теперь я ищу, чтобы увидеть, что мне нужно изменить следующее, но функция поиска продолжает приносить мне старые прокомментированные вещи, о которых я больше не забочусь. Я действительно не хочу удалять этот старый код, на всякий случай.

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

4b9b3361

Ответ 1

удалить прокомментированный код, правильно ли он находится в правиле источника? нет необходимости хранить его и в файле.

Ответ 2

Поскольку другие предоставленные решения не сработали для меня, я, наконец, обнаружил следующее решение:

^~(:b*//).*your_search_term

Краткое объяснение:

  • ^ от начала строки
  • ~( НЕ следующие
  • :b* любое количество пробелов, за которым следует
  • // начало комментария
  • ) конец NOT
  • .* любой символ может появиться перед
  • your_search_term ваш поисковый запрос: -)

Obviouly, это будет работать только для комментариев // и ///.

Вы должны нажать кнопку "Использовать регулярные выражения" (точка и звездочка) в окне поиска, чтобы применить поиск регулярных выражений

Ответ 3

Мой прием:

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

Я предпочитаю неинтрузивные полуинтеллектуальные методы:

Метод бедных: Найти ссылки, если вы используете intelisense на

Или даже лучше: Визуальная помощь, и она окрашивает "Найти все ссылки" и "Перейти", сопоставленные с удобными ярлыками. Это значительно ускоряет навигацию.

Ответ 4

Предыдущий ответ дал ложноположительный результат в случаях, когда в строке, содержащей другой источник, помещались совпадающие строки:

++i; // your_search_term gets found, don't want it found

Итак, заменил :b* на .* и добавил <>, так что найдены только целые слова, а затем пошел после некоторых старых комментариев в стиле C, где есть /* в строке:

^~(.*//)~(.*/\*).*<your_search_term>

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

Ответ 5

Если вы прокомментируете свой старый код с помощью //, вы можете использовать регулярные выражения во время поиска чего-то в своей кодовой базе. Что-то вроде этого, например: ^[^/][^/].*your_function_name.*.

Ответ 6

Просто добавьте, так как я делал "найти все" для оператора разделения, используемого в коде, использовал ниже, чтобы исключить комментарии, а также </ и /> из aspx файлов:

^~(.*//)~(.*/\*)~(.*\<\/)~(.*/\>).*/

Ответ 7

В Visual Basic в Visual Studio 2015 мне удалось найти текст за пределами комментариев, адаптировав комментарий glassiko от наиболее употребимого ответа

^(?![ \t]*[']).*mysearchterm

И в С# вы бы использовали комментарий glassiko точно так, как это было

 ^(?![ \t]*//).*mysearchterm

Ответ 8

Лучше использовать \s Я думаю. ^(?![\s]*//).*your_search_term