Поиск кода на github.com

Как я могу искать фрагменты кода на github.com? Когда я ищу MSG_PREPARE в хранилище ErikZalm/Marlin github ничего не показывает

Я использую синтаксис поиска кода репозитория, описанный на https://github.com/search с

repo:ErikZalm/Marlin MSG_PREPARE

Нет результатов, но MSG_PREPARE можно найти внутри этого хранилища здесь. Я что-то пропустил? На github.com нет поиска кода?

2 ответа

На момент написания этого ответа, по сравнению со временем, когда этот вопрос был задан, то есть около 8 лет назад, github прошел хороший путь, хотя и не до такой длины, на которую вы смотрите.

Поиск кода GitHub ограничен следующими правилами: https://docs.github.com/en/github/searching-for-information-on-github/searching-code . Цитирую то же:

      Code in forks is only searchable if the fork has more stars than the parent repository.
Forks with fewer stars than the parent repository are not indexed for code search.
To include forks with more stars than their parent in the search results, you will need to add fork:true or fork:only to your query.
For more information, see "Searching in forks."

Таким образом, мы можем искать внутри разветвления, используя fork:trueвариант, хотя как и ожидалось, так как репо ErikZalm/Marlinмало звезд по сравнению с родителем MarlinFirmware/Marlin, код в форке до сих пор не проиндексирован. Следовательно, предварительный поиск не дает ничего хорошего, кроме совпадения с репо.

Однако, если вы выполните тот же поиск для родителя, он покажет совпадения в коде. Вот совпадения для MSG_PREPARE в родительском репозитории MarlinFirmware/Marlin.

К счастью, одна компания, которую я знаю, работает над этим доменом — SourceGraph: https://about.sourcegraph.com/

Следовательно, вы можете легко найти то, что вы хотели, с помощью SourceGraph:вот совпадения для MSG_PREPARE в ErikZalm/Marlin с использованием SourceGraph Cloud.

Обновление июль 2013: " Предварительный просмотр нового API поиска "

API поиска GitHub для кода теперь поддерживает фрагменты с помощью метаданных с текстовым соответствием.

метаданные соответствия текста

Некоторые пользователи API захотят выделить соответствующие термины поиска при отображении результатов поиска. API предлагает дополнительные метаданные для поддержки этого варианта использования. Чтобы получить эти метаданные в результатах поиска, укажите тип носителя с текстовым соответствием в заголовке Accept. Например, через curl вышеуказанный запрос будет выглядеть так:

curl -H 'Accept: application/vnd.github.preview.text-match+json' \
  https://api.github.com/search/code?q=octokit+in:file+extension:gemspec+-repo:octokit/octokit.rb&sort=indexed

Это создает ту же полезную нагрузку JSON, что и выше, с дополнительным ключом text_matches, массивом объектов. Эти объекты предоставляют информацию, такую ​​как положение ваших поисковых терминов в тексте, а также свойство, которое включало поисковый термин.


Оригинальный ответ (ноябрь 2012)

Я не думаю, что есть что-то, что вы бы пропустили.

Если вы ищете SdFile, вы найдете результаты в .pde файл, но не в файлах cpp, как в этом SdFile.cpp файл.

Поиск был введен 4 года назад (ноябрь 2008 г.), но, как упоминалось в разделе " Поиск в репозитории github для файла, определяющего данную функцию ", код репозитория GitHub просто не полностью проиндексирован.

Другие вопросы по тегам