Как вы ищете в своих собственных библиотеках исходного кода? - PullRequest
19 голосов
/ 26 января 2010

Я пишу / изменяю код в нескольких форматах файлов, таких как perl, html, css, php, javascript, скрипт autohotkey, ... и т. Д.

Я часто ищу в своей личной библиотеке исходного кода примеры синтаксисаили сложная логика для повторного использования в новом коде.Или я буду искать в дереве каталогов ссылки на код для конкретной строки (например, все ссылки на определенный стиль CSS в perl, php, html и javascript).Иногда я даже ищу такие загадочные строки, как = ~, потому что я ищу определенное регулярное выражение в одной из моих программ на Perl.

Иногда я ищу в существующем коде, используя copernic, но, к сожалению, он может искать только слова иавтоматически игнорирует любой синтаксис программирования.Поиск файлов в Windows 7 выглядит хуже, чем поиск файлов в Windows XP.

У меня вопрос ... Как вы осуществляете поиск в своих собственных библиотеках исходного кода?

Ответы [ 16 ]

0 голосов
/ 27 января 2010

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

Тогда это просто случай какой-то комбинации из поиска / grep.

0 голосов
/ 26 января 2010
0 голосов
/ 26 января 2010

Для кода C я использую стиль кодирования BSD, который гласит, что функция с именем foo должна быть определена следующим образом:

char *
foo(int x)
{
    ...
}

С этим стилем определение функции - единственное место в исходном коде, где имя функции может появляться в начале строки. Тогда дело только в использовании grep:

grep '^foo' **/*.c

Этот прием отфильтровывает использования функции, чтобы сконцентрироваться на определении .

Когда **/*.c выдает слишком много имен файлов (для действительно больших деревьев исходного кода), тогда следует использовать find:

find src -name \*.c -exec grep '^foo' '{}' +

Обратите внимание на использование + с -exec: это заменяет использование xargs.

0 голосов
/ 26 января 2010

В среде Windows я использую Examine32. Это довольно удобный искатель строк (это правильная фраза ?:-)).

0 голосов
/ 26 января 2010

Иметь согласованную схему именования. Это memset () или setmem ()? InitializeUart () или UartInitialize () или UARTInitialize () или UARTInit ()?

0 голосов
/ 26 января 2010

Когда мне нужно выполнить такой поиск (т.е. я хочу найти точную часть кода) , я использую «поиск в каталоге» или «поиск в каталоге с помощью регулярных выражений»Функциональность Eclipse PDT (IDE, с которой я работаю) , или в конечном итоге используйте grep в командной строке.

(Для тех, кто в Windows/ или не нравится CLI, есть некоторые графические инструменты, которые действуют как grep - я видел, как некоторые коллеги используют их)

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