Wyklucz folder z wyszukiwania, ale nie z listy projektów

97

Mam kilka różnych projektów z tym samym core.

Wszystko, czego potrzebuję, to zaznaczyć wszystkie nie bieżące projekty, excludedaby uniknąć przeszukiwania ich (proste wyszukiwanie, shift + cmd + n itp.)

Innymi słowy, chcę mieć wyniki wyszukiwania z core+ current project.

Czy jest jakiś sposób na zrobienie closeniektórych projektów, ale czy są one dostępne w formacie projects listi jest opento tak proste, jak zostało zamknięte? A może masz inne doświadczenie?

wprowadź opis obrazu tutaj

Vitalii Petrychuk
źródło
7
Wyklucz z normalnego wyszukiwania tekstu - łatwe - wystarczy zdefiniować zakres niestandardowy (Preferencje | Zakresy) i użyć go w „Znajdź / Zastąp w ścieżce” i podobnych oknach dialogowych. Ale to nie zadziała dla „Nawiguj | Plik / Klasa / Symbol”, ponieważ zawsze działa z całym projektem. Zamiast tego - lepiej zreorganizuj strukturę folderów („ukrycie tego folderu, ponieważ pracuję z innym” nie jest poprawnym podejściem).
LazyOne
Tak, jednym ze sposobów na zrobienie tego, co chcę, jest utworzenie osobnego projektu dla każdego folderu i utworzenie łącza symbolicznego do corefolderu. Ale szukam alternatywnych sposobów.
Vitalii Petrychuk
1
Niepotrzebne łącze symboliczne (chociaż ja też go używam - dla mnie działa dobrze). Zamiast tego możesz dołączyć go jako Dodatkowy katalog główny zawartości (Preferencje | Katalogi).
LazyOne
Świetny! Napisz swoją odpowiedź jako odpowiedź, a ja ją przyjmuję.
Vitalii Petrychuk

Odpowiedzi:

67

Aby zastosować niestandardowe użyć wyszukiwania zakresów Setting> Project Settings> Scopeswykorzystać go do Find in Pathlub Replace in Path.
Proponuję przeorganizować foldery, aby w katalogu projektu nie pozostały żadne niepotrzebne pliki. Ponadto, można określić źródłowy Korzeń przechodząc do Settings> Project Settings> Directoriesi dodanie dodatkowych katalogów.

Justinas
źródło
4
Możesz stworzyć Scope za pomocą tego:!file[*]:.idea/*&&!file[*]:.idea//*&&!file[*]:app/cache//*&&!file[*]:app/logs//*
Roukmoute
13
Do Twojej wiadomości dla użytkowników komputerów Mac, toPhpStorm > Preferences > Appearance & Behavior > Scopes
Wesley Smith
Myślę, że ta odpowiedź jest teraz przestarzała. Ustawienia> Ustawienia projektu> Zakresy wydają się nie istnieć
Andrew
3
@Andrew Jest w Ustawieniach> Wygląd i zachowanie> Zakresy dla CE 2016.3
tex
Dzięki tex ... to ten.
Andrew
43

To najlepszy sposób na wykluczenie katalogów z wyników wyszukiwania. Pracuję nad dużym projektem Magento z wieloma katalogami, których nie chcę w wynikach wyszukiwania. To rozwiązało mój problem. Jeśli twój projekt zawiera katalog / vendor, pomoże to przyspieszyć indeksowanie w PHPStorm, ponieważ jest ignorowany.

Kliknij prawym przyciskiem dowolny folder, aby wyświetlić następujące opcje.

Wyklucz z wyszukiwania

TheRealJAG
źródło
Działa również przy tworzeniu pakietów Laravel. Zalecany sposób, aby to zrobić, aby utworzyć folder pakietów w katalogu głównym projektu. Teraz będzie używał tych samych klas, co twój główny projekt, więc w końcu otrzymasz mnóstwo zduplikowanych klas, które zawierają błędy. Kliknij prawym przyciskiem myszy i zrób to i działa jak magia. Podejście z zakresem nie działa dla mnie!
Juha Vehnia
39

Od wersji 2016.3 można to znaleźć w obszarze Ustawienia > Wygląd i zachowanie > Zakresy .

Lub niezależnie od wersji , po prostu przejdź do Ustawień i wpisz „zakresy” w polu wyszukiwania u góry.

Następnie kliknij symbol +, aby dodać zakres, wybierz folder, który chcesz wykluczyć, i kliknij opcję Wyklucz rekurencyjnie i zastosuj.

Następnie podczas wyszukiwania za pomocą CTRL + SHIFT + F w obszarze Opcje> Zakres wybierz opcję Niestandardowy i wybierz zakres, który właśnie utworzyłeś (dzięki komentatorom).

Andrzej
źródło
4
Po prostu chcę dodać, jeśli używasz ZNAJDŹ, takiego jak cmd + shift + F, a następnie na karcie opcji możesz wybrać opcję niestandardową, a następnie wybrać elipsę i otwiera narzędzie zakresu i możesz wybrać lub utworzyć zakres, aby wykluczyć to, czego potrzebujesz.
daveferrara1
4
This automatically excludes this folder's contents from the searches...po utworzeniu zakresu niestandardowego moje wyszukiwanie Ctrl + Shift + F nadal przeszukiwało globalnie, dopóki wyraźnie nie wybrałem opcji „Niestandardowy” i nie wybrałem zakresu, jak sugerował @ daveferrara1.
Dimitry K
1
W 2020: Po kliknięciu + wybór Localvs Sharedoznacza, czy wykluczenie przechodzi do VCS, czy nie. Następnie musisz to nazwać . Następnie po kroku @ DimitryK (teraz nazywanym Scopezakładką) musisz wybrać tę samą nazwę z rozwijanego menu. (Czy Jetbrains UX majstruje, zmieniając kogoś innego w zrzędliwego starca?)
Bob Stein
2

Jak @Justinas i komentatorzy powiedzieli: Możesz stworzyć niestandardowy zakres i denerwować się za każdym razem, wybierając ten niestandardowy zakres podczas korzystania z funkcji Znajdź w ścieżce (i podobnych), ponieważ PhpStorm nie używa tego niestandardowego zakresu domyślnie 🤦🏻‍♂️

Wykluczenie katalogu node_modules i tak przerywa autouzupełnianie i inne funkcje pomocy w kodzie. Nie chcesz tego robić.

Jednak znalazłem hack, która nie wymaga żadnego wykluczenia katalogów z node_modules ani zakresu niestandardowej:

  1. Zamknij PhpStorm. Upewnij się, że nie działa.
  2. Otwarte name_of_your_project.iml w .idea katalogu w katalogu projektu ze swoim ulubionym edytorze tekstowym. O ile nie jest to PhpStorm.
  3. Usuń linię <content url="file://$MODULE_DIR$/node_modules" />
  4. Zapisać.
  5. Ciesz się znowu życiem.

Uważam, że JetBrains jest amatorskim włączaniem katalogów przechowywania zależności, takich jak node_modules JavaScript / TypeScript i dostawca PHP. Nie ma prawie żadnego przypadku użycia, aby uwzględnić te katalogi w funkcji znajdź i zamień, pozostawiając w spokoju funkcję refaktoryzacji.

RoestVrijStaal
źródło