Ordner von der Suche ausschließen, jedoch nicht von der Projektliste

95

Ich habe ein paar verschiedene Projekte mit dem gleichen core.

Ich muss nur alle nicht aktuellen Projekte markieren excluded, um ein Durchsuchen zu vermeiden (einfache Suche, Umschalt + cmd + n usw.).

Mit anderen Worten, ich möchte ein Suchergebnis vom core+ haben current project.

Gibt es eine Möglichkeit, closeeinige Projekte durchzuführen, aber haben sie in der projects listund openes ist so einfach, wie es geschlossen wurde? Oder haben Sie wahrscheinlich eine andere Erfahrung?

Geben Sie hier die Bildbeschreibung ein

Vitalii Petrychuk
quelle
7
Von der normalen Textsuche ausschließen - einfach - definieren Sie einfach einen benutzerdefinierten Bereich (Einstellungen | Bereiche) und verwenden Sie ihn in "Suchen / Ersetzen im Pfad" und ähnlichen Dialogfeldern. Dies funktioniert jedoch nicht für "Navigieren | Datei / Klasse / Symbol", da es immer mit dem gesamten Projekt funktioniert. Stattdessen sollten Sie Ihre Ordnerstruktur besser neu organisieren ("Diesen Ordner ausblenden, weil ich mit einem anderen arbeite" ist kein korrekter Ansatz).
LazyOne
Ja, ich kann unter anderem für jedes Ordner ein eigenes Projekt erstellen und einen Symlink zum coreOrdner erstellen . Aber ich suche nach alternativen Wegen.
Vitalii Petrychuk
1
Nicht notwendiger Symlink (obwohl ich das auch benutze - funktioniert gut für mich). Sie können es stattdessen als zusätzlichen Inhaltsstamm anhängen (Einstellungen | Verzeichnisse).
LazyOne
Toll! Bitte poste deine Antwort als Antwort und ich werde sie akzeptieren.
Vitalii Petrychuk

Antworten:

66

Um benutzerdefinierte Such Verwendung Scopes anwenden Setting> Project Settings> Scopesverwenden , um es für Find in Pathoder Replace in Path.
Ich schlage vor, Ihre Ordner neu zu organisieren, damit keine unnötigen Dateien im Projektverzeichnis verbleiben. Außerdem können Sie Source Root angeben , indem Sie auf Settings> Project Settings> Directoriesund das Hinzufügen zusätzlicher Verzeichnisse.

Justinas
quelle
4
Sie könnten Scope damit erstellen:!file[*]:.idea/*&&!file[*]:.idea//*&&!file[*]:app/cache//*&&!file[*]:app/logs//*
Roukmoute
13
Zu Ihrer Information für Mac-Benutzer ist esPhpStorm > Preferences > Appearance & Behavior > Scopes
Wesley Smith
Ich denke, diese Antwort ist jetzt veraltet. Einstellung> Projekteinstellungen> Bereiche scheint nicht zu existieren
Andrew
3
@ Andrew Es ist unter Einstellungen> Aussehen & Verhalten> Bereiche für CE 2016.3
Tex
Danke tex ... das ist der eine.
Andrew
40

Dies ist der beste Weg, um Verzeichnisse aus Ihren Suchergebnissen auszuschließen. Ich arbeite an einem großen Magento-Projekt mit vielen Verzeichnissen, die ich nicht in Suchergebnissen haben möchte. Dies löste mein Problem. Wenn Ihr Projekt ein Verzeichnis / vendor enthält, beschleunigt dies die Indizierung in PHPStorm, da es ignoriert wird.

Klicken Sie mit der rechten Maustaste auf einen Ordner, um die folgenden Optionen aufzurufen.

Von der Suche ausschließen

TheRealJAG
quelle
Funktioniert auch für die Laravel-Paketentwicklung. Empfohlene Methode zum Erstellen eines Paketordners in Ihrem Projektstamm. Jetzt werden dieselben Klassen wie in Ihrem Hauptprojekt verwendet, sodass am Ende eine Menge doppelter Klassenfehler auftreten. Klicken Sie mit der rechten Maustaste und tun Sie dies und es funktioniert wie Magie. Der Scope-Ansatz hat bei mir nicht funktioniert!
Juha Vehnia
39

Ab Version 2016.3 finden Sie dies unter Einstellungen > Aussehen & Verhalten > Bereiche .

Oder gehen Sie unabhängig von der Version einfach zu Einstellungen und geben Sie "Bereiche" in das Suchfeld oben ein.

Klicken Sie dann einfach auf das Symbol +, um den Bereich hinzuzufügen, wählen Sie den Ordner aus, den Sie ausschließen möchten, und klicken Sie auf Rekursiv ausschließen und anwenden.

Wenn Sie dann mit STRG + UMSCHALT + F suchen, wählen Sie unter Optionen> Bereich die Option Benutzerdefiniert und wählen Sie den Bereich aus, den Sie gerade erstellt haben (danke Kommentatoren).

Andrew
quelle
4
Wenn Sie FIND wie cmd + shift + F verwenden, können Sie nur hinzufügen, dass Sie auf der Registerkarte "Optionen" eine benutzerdefinierte Funkfunktion auswählen und dann die Ellipse auswählen können. Daraufhin wird das Bereichswerkzeug geöffnet und Sie können einen Bereich auswählen oder erstellen, um das auszuschließen, was Sie benötigen.
Daveferrara1
4
This automatically excludes this folder's contents from the searches...Nachdem ich meinen benutzerdefinierten Bereich erstellt habe, suchte meine Suche mit Strg + Umschalt + F immer noch global, bis ich explizit "Benutzerdefiniert" ausgewählt und meinen Bereich wie von @ daveferrara1 vorgeschlagen ausgewählt habe.
Dimitry K
1
Im Jahr 2020: Nach dem Klicken auf + bedeutet die Auswahl Localvs Shared, ob der Ausschluss in VCS eingeht oder nicht. Dann musst du es benennen . Nach dem Schritt von @ DimitryK (jetzt als ScopeRegisterkarte bezeichnet) müssen Sie denselben Namen in einem Dropdown-Menü auswählen. (Bastelt Jetbrains UX daran, jemanden in einen mürrischen alten Mann zu verwandeln?)
Bob Stein
2

Wie @Justinas und Kommentatoren sagten: Sie könnten einen benutzerdefinierten Bereich erstellen und sich jedes Mal ärgern, indem Sie diesen benutzerdefinierten Bereich auswählen, wenn Sie Find in Path (und ähnliches) verwenden, da PhpStorm diesen benutzerdefinierten Bereich standardmäßig nicht verwendet 🤦🏻‍♂️

Das Ausschließen des Verzeichnisses node_modules unterbricht ohnehin die automatische Vervollständigung und andere Funktionen zur Codeunterstützung . Das willst du nicht.

Ich habe jedoch einen Hack gefunden, der weder einen Verzeichnisausschluss von node_modules noch einen benutzerdefinierten Bereich erfordert :

  1. Schließen Sie PhpStorm. Stellen Sie sicher, dass es nicht läuft.
  2. Öffnen Sie name_of_your_project.iml im Verzeichnis .idea in Ihrem Projektverzeichnis mit Ihrem bevorzugten Texteditor. Solange es nicht PhpStorm ist.
  3. Entfernen Sie die Leitung <content url="file://$MODULE_DIR$/node_modules" />
  4. Sparen.
  5. Genieße das Leben wieder.

Ich finde es amateurhaft von JetBrains, Abhängigkeitsspeicherverzeichnisse wie node_modules von JavaScript / TypeScript und den Hersteller von PHP standardmäßig einzuschließen . Es gibt kaum einen Anwendungsfall, um diese Verzeichnisse in die Such- und Ersetzungsfunktion einzubeziehen, ganz zu schweigen von der Refactor-Funktionalität.

RoestVrijStaal
quelle