Исключить папку из поиска, но не из списка проектов

97

У меня есть несколько разных проектов с таким же core.

Все, что мне нужно, это отметить все не текущие проекты, excludedчтобы не искать их (простой поиск, shift + cmd + n и т. Д.)

Другими словами, я хочу, чтобы результаты поиска были в core+ current project.

Есть ли способ сделать closeкакие-то проекты, но чтобы они были доступны в, projects listи openэто так просто, как это было закрыто? Или, наверное, у вас есть другой опыт?

введите описание изображения здесь

Виталий Петричук
источник
7
Исключить из обычного текстового поиска - легко - просто определите настраиваемую область (Preferences | Scopes) и используйте ее в «Найти / заменить в пути» и подобных диалоговых окнах. Но это не сработает для «Navigate | File / Class / Symbol», так как всегда работает со всем проектом. Вместо этого - лучше реорганизуйте структуру папок («скрыть эту папку, потому что я работаю с другой» - неправильный подход).
LazyOne
Да, я один из способов сделать то, что я хочу, - создать для каждой папки отдельный проект и создать символическую ссылку на coreпапку. Но ищу альтернативные пути.
Виталий Петричук
1
Не обязательная символическая ссылка (хотя я тоже использую ее - у меня отлично работает). Вместо этого вы можете прикрепить его как дополнительный корневой каталог (Настройки | Каталоги).
LazyOne
Большой! Отправьте свой ответ в качестве ответа, и я приму его.
Виталий Петричук

Ответы:

68

Чтобы применить пользовательские использования областей поиска Setting> Project Settings> Scopesиспользовать его для Find in Pathили Replace in Path.
Я предлагаю реорганизовать ваши папки, чтобы в каталоге проекта не осталось ненужных файлов. Кроме того , вы можете указать Source Root, перейдя в Settings> Project Settings> Directoriesи добавление дополнительных каталогов.

Юстинас
источник
4
Вы можете создать Scope с помощью этого:!file[*]:.idea/*&&!file[*]:.idea//*&&!file[*]:app/cache//*&&!file[*]:app/logs//*
Roukmoute
13
К вашему сведению для пользователей Mac, этоPhpStorm > Preferences > Appearance & Behavior > Scopes
Уэсли Смит,
Я думаю, что этот ответ уже устарел. Настройка> Настройки проекта> Области, похоже, не существует
Эндрю
3
@Andrew. Это в разделе Настройки> Внешний вид и поведение> Области действия для CE 2016.3
текс,
Спасибо, текс ... это тот самый.
Эндрю
46

Это лучший способ исключить каталоги из результатов поиска. Я работаю над большим проектом Magento со многими каталогами, которые мне не нужны в результатах поиска. Это решило мою проблему. Если ваш проект содержит каталог / vendor, это поможет ускорить индексацию в PHPStorm, поскольку он игнорируется.

Щелкните правой кнопкой мыши любую папку, чтобы открыть следующие параметры.

Исключить из поиска

TheRealJAG
источник
Также работает для разработки пакетов Laravel. Рекомендуемый способ сделать это - создать папку пакетов в корне вашего проекта. Теперь он будет использовать те же классы, что и ваш основной проект, поэтому вы получите массу повторяющихся ошибок классов. Щелкните правой кнопкой мыши и сделайте это, и это работает как по волшебству. Подход с масштабом не сработал для меня!
Юха Вехния,
39

Начиная с версии 2016.3, это находится в разделе « Настройки» > « Внешний вид и поведение» > « Области» .

Или, независимо от версии , просто перейдите в « Настройки» и введите «области» в поле поиска вверху.

Затем просто щелкните символ +, чтобы добавить область, выберите папку, которую вы хотите исключить, и щелкните Исключить рекурсивно и применить.

Затем, когда вы выполняете поиск с помощью CTRL + SHIFT + F, в разделе «Параметры»> «Область действия» выберите «Пользовательский» и выберите только что созданную область (спасибо комментаторам).

Андрей
источник
4
Просто хочу добавить, если вы используете FIND, например cmd + shift + F, тогда на вкладке параметров вы можете настроить радио, а затем выбрать эллипс, и он откроет инструмент области, и вы можете выбрать или создать область, чтобы исключить то, что вам нужно.
daveferrara1
4
This automatically excludes this folder's contents from the searches...после того, как я создал свою настраиваемую область видимости, мой поиск Ctrl + Shift + F все еще выполнял поиск по всему миру, пока я явно не выбрал «Пользовательский» и не выбрал свою область, как предложил @ daveferrara1.
Dimitry K
1
В 2020: после нажатия + выбор Localvs Sharedозначает, переходит ли исключение в VCS или нет. Затем вы должны дать ему имя . Затем после шага @DimitryK (теперь называемого Scopeвкладкой) вы должны выбрать то же имя в раскрывающемся меню. (Неужели Jetbrains UX пытается превратить кого-нибудь еще в сварливого старика?)
Боб Стейн,
2

Как сказал @Justinas и комментаторы: вы можете создать настраиваемую область видимости и каждый раз раздражать себя, выбирая эту настраиваемую область при использовании поиска в пути (и т.п.), поскольку PhpStorm не использует эту настраиваемую область по умолчанию 🤦🏻‍♂️

Исключение каталога node_modules в любом случае нарушает автозаполнение и другие функции поддержки кода. Вы не хотите этого делать.

Тем не менее, я нашел хак , который не требует какого - либо каталоги исключения из node_modules , ни настраиваемой области:

  1. Закройте PhpStorm. Убедитесь, что он не работает.
  2. Откройте name_of_your_project.iml в каталоге .idea в каталоге вашего проекта с помощью вашего любимого текстового редактора. Если это не PhpStorm.
  3. Удалите строку <content url="file://$MODULE_DIR$/node_modules" />
  4. Сохранить.
  5. Наслаждайся жизнью снова.

Я считаю, что JetBrains по-дилетантски включает каталоги хранения зависимостей, такие как node_modules JavaScript / TypeScript и поставщика PHP по умолчанию. Вряд ли есть какой-либо вариант использования для включения этих каталогов в функции поиска и замены, оставив только функцию рефакторинга.

RoestVrijStaal
источник