Найдите объявление и определение функции с помощью удара

Я взглянул AF рак ++ проект больше чем с 100 файлами. Данный определенное имя функции, как можно найти, просто инструментам удара использования нравится, находят или grep, объявление и определение функции?

Спасибо

14
задан Open the way 13 March 2010 в 16:33
поделиться

3 ответа

в самом простом случае,

grep -ER '^.*(.*);' file  #find declaration.

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

3
ответ дан 1 December 2019 в 12:13
поделиться

Если у вас есть соглашение, что определение функции начинается в начале строки, то вы можете использовать:

find . -exec egrep '^fn' '{}' ';' >/dev/null -print

если вы хотите ограничиться заголовками, вы можете поставить -name *.h перед -exec

NB если вы хотите делать это часто, посмотрите на "tags" и друзей fire, поддерживающих актуальный индекс, что будет быстрее в будущем.

2
ответ дан 1 December 2019 в 12:13
поделиться

Попробуйте ack , что намного лучше, чем grep. Цветное выделение, работа ...

$ ack funcion_name

Распечатывает все случаи использования функции имя_функции, рекурсивно выполняющей поиск по исходным файлам, а также достаточно умен, чтобы игнорировать .svn и другие метаданные

13
ответ дан 1 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: