Существуют ли какие-либо контекстно-зависимые инструменты поиска кода? - PullRequest
1 голос
/ 20 мая 2010

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

Скажем, я пытаюсь найти конкретный вызов функции, я получаю множество результатов, которые оказываются совершенно неактуальными; некоторые из них легко заметить, например, комментарий, в котором говорится

// Fixed functionality in foo() so don't need to handle this here any more

Но другие гораздо сложнее определить вручную, потому что они оказываются вызовами из других функций в модулях, которые компилируются только в определенных случаях, или являются частью гораздо большего блока кода, который #if 0 'd out во всей полноте.

То, что я хотел бы, это инструмент поиска, который позволил бы мне искать термин и давать мне выбор включать или исключать закомментированный или #if 0 out out код. Затем результаты поиска будут отображаться вместе со списком #defines, которые необходимы для того, чтобы этот фрагмент кода был релевантным.

Я работаю в C / C ++, но, кроме конкретного синтаксиса комментариев, я думаю, что методы должны быть более общими.

Существует ли такой инструмент?

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Практически любой приличный исходный браузер позволит вам перейти туда, где определена функция, и / или перечислить все вызовы этой функции и перенаправить вас прямо на сайт вызовов. Обычно это будет основано на достаточно полном разборе исходного кода, поэтому он будет игнорировать комментарии, код, исключенный препроцессором, и т. Д. лучше, чем тот, который использовался в самом компиляторе).

1 голос
/ 20 мая 2010

Не совсем то, что вы ищете, но я нахожу это очень удобным.

GrepWin - Бесплатный визуальный инструмент "grep" для поиска файлов.

Я нахожу это очень полезным, потому что:

  • Это отдельное приложение (не закрывает мой редактор)
  • Ручки Регулярные выражения
  • Это быстро
  • Можно указать, какую папку искать и какие типы файлов (здесь также обрабатывается регулярное выражение)
  • Можно ограничить размером файла
  • Может включать подкаталоги (или исключать с помощью регулярных выражений)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...