Exclure le dossier de la recherche mais pas de la liste des projets

95

J'ai quelques projets différents avec le même core.

Tout ce dont j'ai besoin est de marquer tous les projets non en cours excludedpour éviter de les parcourir (recherche simple, shift + cmd + n etc.)

En d'autres termes, je veux avoir un résultat de recherche à partir du core+ current project.

Existe-t-il un moyen de faire closecertains projets, mais les avoir disponibles dans le projects listet openc'est si facile qu'il a été fermé? Ou vous avez probablement une autre expérience?

entrez la description de l'image ici

Vitalii Petrychuk
la source
7
Exclure de la recherche de texte normale - facile - il suffit de définir la portée personnalisée (Préférences | Étendues) et de l'utiliser dans "Rechercher / Remplacer dans le chemin" et les boîtes de dialogue similaires. Mais cela ne fonctionnera pas pour "Naviguer | Fichier / Classe / Symbole" car cela fonctionne toujours avec l'ensemble du projet. Au lieu de cela - mieux réorganiser la structure de votre dossier ("avoir masqué ce dossier parce que je travaille avec un autre" n'est pas une approche correcte).
LazyOne
Ouais, l'un des moyens de faire ce que je veux est de créer un projet séparé pour chaque dossier et de créer un lien symbolique vers le coredossier. Mais je cherche des moyens alternatifs.
Vitalii Petrychuk
1
Pas de lien symbolique nécessaire (bien que je l'utilise également - fonctionne très bien pour moi). Vous pouvez le joindre en tant que racine de contenu supplémentaire à la place (Préférences | Répertoires).
LazyOne
Génial! Veuillez poster votre réponse comme réponse et je l'accepterai.
Vitalii Petrychuk

Réponses:

67

Pour appliquer la recherche personnalisée utilisation Scopes Setting> Project Settings> Scopesutiliser pour Find in Pathou Replace in Path.
Je suggère de réorganiser vos dossiers, afin qu'aucun fichier inutile ne soit laissé dans le répertoire du projet. En outre, vous pouvez spécifier la source racine en allant à Settings> Project Settings> Directorieset ajouter des répertoires supplémentaires.

Justinas
la source
4
Vous pouvez créer Scope avec ceci:!file[*]:.idea/*&&!file[*]:.idea//*&&!file[*]:app/cache//*&&!file[*]:app/logs//*
Roukmoute
13
FYI pour les utilisateurs de Mac, c'estPhpStorm > Preferences > Appearance & Behavior > Scopes
Wesley Smith
Je pense que cette réponse est dépassée maintenant. Paramètre> Paramètres du projet> Les portées ne semblent pas exister
Andrew
3
@Andrew C'est sous Paramètres> Apparence et comportement> Portées pour CE 2016.3
tex
Merci tex ... c'est celui-là.
Andrew
41

C'est le meilleur moyen d'exclure des répertoires de vos résultats de recherche. Je travaille sur un grand projet Magento avec de nombreux répertoires que je ne veux pas dans les résultats de recherche. Cela a résolu mon problème. Si votre projet contient un répertoire / vendor, cela aidera à accélérer l'indexation dans PHPStorm car il est ignoré.

Cliquez avec le bouton droit sur n'importe quel dossier pour afficher les options suivantes.

Exclure de la recherche

TheRealJAG
la source
Fonctionne également pour le développement de packages Laravel. Méthode recommandée pour ce faire pour créer le dossier packages à la racine de votre projet. Maintenant, il utilisera les mêmes classes que votre projet principal, vous finirez donc par obtenir une tonne d'erreurs de classes en double. Faites un clic droit et faites cela et cela fonctionne comme par magie. L'approche portée n'a pas fonctionné pour moi!
Juha Vehnia le
39

À partir de la version 2016.3, cela se trouve sous Paramètres > Apparence et comportement > Étendues .

Ou quelle que soit la version , allez simplement dans Paramètres et tapez "étendues" dans le champ de recherche en haut.

Ensuite, cliquez simplement sur le symbole + pour ajouter l'étendue, choisissez le dossier que vous souhaitez exclure et cliquez sur Exclure récursivement et appliquer.

Ensuite, lorsque vous effectuez une recherche en utilisant CTRL + MAJ + F, sous Options> Étendue, sélectionnez Personnalisé et choisissez l'étendue que vous venez de créer (merci aux commentateurs).

Andrew
la source
4
Je veux simplement ajouter si vous utilisez FIND comme cmd + shift + F, puis dans l'onglet Options, vous pouvez personnaliser par radio, puis choisir l'ellipse et cela ouvre l'outil de portée et vous pouvez sélectionner ou créer une portée pour exclure ce dont vous avez besoin.
daveferrara1
4
This automatically excludes this folder's contents from the searches...après avoir créé ma portée personnalisée, ma recherche Ctrl + Maj + F recherchait toujours globalement jusqu'à ce que j'aie explicitement sélectionné "Personnalisé" et choisi ma portée comme @ daveferrara1 le suggérait.
Dimitry K
1
En 2020: après avoir cliqué sur +, le choix Localvs Sharedsignifie si l'exclusion va dans VCS ou non. Ensuite, vous devez le nommer . Ensuite, après l'étape de @ DimitryK (maintenant appelée l' Scopeonglet), vous devez choisir ce même nom dans un menu déroulant. (Le bricolage Jetbrains UX transforme-t-il quelqu'un d'autre en un vieil homme grincheux?)
Bob Stein
2

Comme @Justinas et les commentateurs l'ont dit: Vous pouvez créer une portée personnalisée et vous ennuyer à chaque fois en sélectionnant cette portée personnalisée lors de l'utilisation de Find in Path (et similaire) car PhpStorm n'utilise pas cette portée personnalisée par défaut 🤦🏻‍♂️

Exclure les node_modules répertoire interrompt de toute façon et d'autres fonctionnalités d'assistance de code. Tu ne veux pas faire ça.

Cependant, j'ai trouvé un hack qui ne nécessite aucune exclusion de répertoire de node_modules ni une portée personnalisée:

  1. Fermez PhpStorm. Assurez-vous qu'il ne fonctionne pas.
  2. Ouvrez nom_de_votre_projet.iml dans le répertoire .idea de votre répertoire de projet avec votre éditeur de texte préféré. Tant que ce n'est pas PhpStorm.
  3. Supprimer la ligne <content url="file://$MODULE_DIR$/node_modules" />
  4. Sauver.
  5. Profitez à nouveau de la vie.

Je trouve amateur de JetBrains d'inclure des répertoires de stockage de dépendances tels que node_modules de JavaScript / TypeScript et fournisseur de PHP par défaut. Il n'y a pratiquement aucun cas d'utilisation pour inclure ces répertoires dans la fonctionnalité de recherche et de remplacement, laissant seule la fonctionnalité de refactorisation.

RoestVrijStaal
la source