Remove dagger generated classes from Android Studio's global search?
Asked Answered
N

4

33

It is really irritating. I need more time to find some class because of dagger 2.

Neighborhood answered 5/7, 2017 at 9:21 Comment(1)
Which search are you talking about? Command + Shift + O? If yes, than it's "search everywhere", it should bring everything.Toplevel
P
45

If you are talking about the generated MembersInjector and Factory classes:

MyClass_MembersInjector.java
MyClass_Factory.java

you can prevent these from coming up in the Ctr-N or Cmd-O dialog by adding them to the ignored files list in File / Settings / Editor / FileTypes and adding the appropriate wildcards to the Ignore files and folders edittext:

the ignore files and folders dialog in IntelliJ

*_MembersInjector.java; *_Factory.java; will cause most of the generated classes to be ignored:

Before:

before applying the settings

After:

after applying the settings

You can even add Dagger*.java to the list if you don't even want to see the generated component (even though this is rather useful for the project).

Update:

If you are talking about not having the classes appear in auto-import/auto-complete this is done through Settings / Editor / General / Auto Import:

auto import settings dialog in IntelliJ

Possess answered 23/7, 2017 at 1:6 Comment(4)
As for 2020 year Dagger 2, you change exceptions line to _Provide.java;*_Factory.java;*_Bind*.javaComitia
@DmitriyPavlukhin Yes _Provide.java;*_Factory.java;*_Bind*.java worked thanks for the updateProgenitor
For Hilt I use these exceptions: *_MembersInjector.java; *_Factory.java; *_Providers.java; *_Bindings.java; *_HiltComponents_*.javaVyky
nice! I've added to this rules suggestions from the aednlaxer.medium.com/…Precedent
T
19

David Rawson's answer doesn't help to get rid of not showing _Factory classes when performing Find Usages on the class name. This is what will be shown:

This can be resolved with creating a new scope which will disregard generated files.

Here's the regex for generated files in app module: !file[app]:build/generated//*. But you may as well use "Exclude recursively" button locating the directory you want to get rid of.

Now, change the search scope to newly created:

And this will be the output:

No _Factory classes. You may as well get rid of classes in test packages, thus only classes from production package will be found.

Toplevel answered 30/7, 2017 at 16:23 Comment(3)
That's great. I would even write it as !file:build/generated//* that way it'll remove generated from other modules than appSlotnick
How can we filter if it's for instance: Hilt_LoginActivity? It's a generated file from Hilt. Thank you.Cursor
@RedM Hilt_*.javaEuhemerus
Y
5

In Android Studio Dolphin there is a new option in Find Usages dialog, so you can ignore usages in generated code.

enter image description here

Yamen answered 26/7, 2022 at 13:58 Comment(0)
T
3

In Android Studio, go to

File -> Settings -> Editor -> File Types -> Ignored Files and Folders

and add wild cards. Enter apply.

For Hilt, you can add following flags/wildcards *_MembersInjector.java; *_Factory.java; *_Providers.java; *_Bindings.java; *_HiltComponents_*.java; *_Provide*.java

Tamandua answered 29/12, 2021 at 20:31 Comment(2)
thanks, I'll just add to the list: *_HiltModules.javaMaleki
Hilt.java is enoughCraal

© 2022 - 2024 — McMap. All rights reserved.