Как искать иерархически через код и текстовые файлы? - PullRequest
0 голосов
/ 03 мая 2020

Я ищу поиск слов (через репо git), где слова могут не отображаться в одной строке, а распределяться по нескольким различным строкам. Но линии, по которым они распространяются, "иерархичны".

Что я имею в виду под иерархическим? Рассмотрим иерархию классов, например

class Alpha {
...
  function bar(cats, dogs) {
...
    print(elephants)
...
class Gamma {
...
  function bar(cats, dogs) {
...
    print(elephants)
...

. Я хочу найти «панель печати альфа» или «панель печати гамма». Идея состоит в том, что печать вложена в панель, которая, в свою очередь, вложена в Альфа.

Я написал простой скрипт python, который делает это, просто просматривая каждую строку и отслеживая то, что было найдено в иерархия до сих пор. Но я бы хотел быстрое решение. Поиск сотен файлов приводит к очень медленному запуску программы python!

Другие полезные вещи:

  • В идеале порядок поисковых терминов не имеет значения. Поэтому, даже если я найду «напечатать строку альфа», я верну мне первую строку печати. ​​

  • Я бы хотел определить иерархию в соответствии с языком, заданным c , В объектно-ориентированном языке это будет определено как выше. В org-файле это вложение заголовков. В текстовом файле это может быть просто отступ (как в файле python).

...