См. Нашу систему поиска исходного кода (SCSE) .Этот инструмент индексирует вашу кодовую базу, используя структуру языка для управления индексацией;это можно сделать для многих языков, включая JavaScript.Затем поисковые запросы задаются в терминах токенов абстрактного языка, например, чтобы найти идентификаторы, включающие строку «налог», умноженную на некоторую константу, вы должны написать:
I=*tax* '*' N
Это будет искать все проиндексированные языки только для идентификаторов (на каждом языке), за которыми следует знак *, за которым следует какое-то число.Поскольку инструмент понимает структуру языка, его не смущают пробелы, форматирование или комментарии.Поскольку он понимает комментарии, вы можете искать внутри только комментариев (скажем, для авторов):
C=*Author*
По запросу SCSE находит все совпадения по базе кода (возможно, миллионы строк) и предлагаетэто как набор вариантов;щелчок по выбору подтягивает файл с попаданием в середину, обозначенную там, где происходит совпадение.
Если вы настаиваете на поиске только необработанного текста, SCSE обеспечивает поиск в стиле grep.Если у вас есть только небольшой набор файлов, это все еще довольно быстро.Если у вас большой набор файлов, это намного медленнее, чем поиск по языковой структуре.В обоих случаях поиск по типу grep дает вам больше хитов, обычно за счет ложных срабатываний (например, поиск «налога» в комментарии или поиск переменной с именем «Authorization_code»).Но, по крайней мере, у вас есть выбор.
Хотя это не работает изнутри редактора, вы можете запустить свой редактор (для большинства редакторов) для файла, как только вы нашли нужный вам удар.