Как искать файлы в разных каталогах рекурсивно в VSCode? - PullRequest
1 голос
/ 04 февраля 2020

Код Visual Studio (начиная с версии 1.41.1), очевидно, очень ограничен в отношении поиска файлов. Кажется, он позволяет только рекурсивно искать в папках или в определенных c файлах, но не позволяет и то и другое.

Поиск в папках рекурсивно

  • path/to/folder/ выполняет поиск во всех каталогах в подпутях, соответствующих path/to/folder, включая все подкаталоги без ограничений в именах файлов.
  • ./path/to/folder/, ./path/to/another/folder выполняет поиск в каталогах с путями path/to/folder и path/to/another/folder относительно каталог проекта root.

Поиск в файлах

  • foo.bar поиск во всех файлах с именем foo.bar.
  • *.foo, *.bar выполняет поиск во всех файлах с расширениями foo или bar.
  • ./path/to/folder/*/*.foo выполняет поиск во всех файлах с расширением foo, что l ie, в прямом подкаталоге path/to/folder/ относительно каталога root проекта.

Рекурсивный поиск в папках и фильтрация по имени файла

Итак, как объединить эти два поиска, т.е. фильтровать поиск по именам файлов, но искать в указанных c директори es со всеми их подкаталогами?

В других редакторах, таких как Eclipse, у вас обычно есть два разных поля для имен файлов и папок, что позволяет легко задавать их по отдельности и избегать повторения для нескольких папок и имен файлов. Поэтому я уже создал запрос улучшения в трекере ошибок VSCode с просьбой добавить отдельное поле для папки .

1 Ответ

1 голос
/ 07 февраля 2020

В моем тестировании использование globstar действительно обеспечивает необходимую вам функциональность.

https://github.com/isaacs/node-glob#glob -primer :

** Если a " globstar "находится один в части пути, затем он ищет ноль или более каталогов и подкаталогов, ищущих совпадения. Он не сканирует каталоги с символьными ссылками.

Так, например, ./path/to/folder/**/*.foo выполняет поиск во всех подкаталогах folder, независимо от того, насколько глубоко внутри находятся файлы с расширением foo.

То же самое в https://code.visualstudio.com/docs/editor/codebasics#_advanced -search-options :

** для соответствия любому количеству сегментов пути, включая ни одного

...