Я ищу поиск слов (через репо git), где слова могут не отображаться в одной строке, а распределяться по нескольким различным строкам. Но линии, по которым они распространяются, "иерархичны".
Что я имею в виду под иерархическим? Рассмотрим иерархию классов, например
class Alpha {
...
function bar(cats, dogs) {
...
print(elephants)
...
class Gamma {
...
function bar(cats, dogs) {
...
print(elephants)
...
. Я хочу найти «панель печати альфа» или «панель печати гамма». Идея состоит в том, что печать вложена в панель, которая, в свою очередь, вложена в Альфа.
Я написал простой скрипт python, который делает это, просто просматривая каждую строку и отслеживая то, что было найдено в иерархия до сих пор. Но я бы хотел быстрое решение. Поиск сотен файлов приводит к очень медленному запуску программы python!
Другие полезные вещи:
В идеале порядок поисковых терминов не имеет значения. Поэтому, даже если я найду «напечатать строку альфа», я верну мне первую строку печати.
Я бы хотел определить иерархию в соответствии с языком, заданным c , В объектно-ориентированном языке это будет определено как выше. В org-файле это вложение заголовков. В текстовом файле это может быть просто отступ (как в файле python).