How to exclude a file extension from IntelliJ IDEA search?
Asked Answered
L

7

229

Is there a way to exclude particular file extension from the results in IntelliJ IDEA's "Find in Path" dialog (invoked by CTRL + SHIFT + F)? I want to exclude all .css files.

Limitative answered 3/3, 2014 at 10:13 Comment(0)
N
328

In intellij 16 there is a section "File name Filter" to exclude an extension use !*.java. You can give more detailed patterns as well for example I use the pattern below to only return .java files except those with a name starting or ending with test. Pattern: !*test.java,*.java,!Test*.java

enter image description here

In recent versions of Intellij the GUI has been updated a bit but the same still applies see the "File mask" on the top right hand corner see image below:

enter image description here

Newton answered 13/6, 2016 at 2:40 Comment(6)
Can I not mention !mocks/*.json in the File Masks filter ?Christianchristiana
@Christianchristiana what are your doing to do with the '/' not sure why its needed (i thought '/' is just a delimiter in regex). without it your filter would say exclude any file that starts with "mock"s followed by anything ending in ".json"Newton
This "File name Filter" dialogue doesn't seem to exist in recent versions (2018.1, etc.).Diversified
Note that this feature was added in IntelliJ 2016.1. If you're using a perpetual fallback license of IntelliJ 15 or older, this feature won't be available. See my other postDoggy
For anybody who's interested, this works in Rider as well.Ane
For php 2018, this option is in Settings > Editor > File Types > Ignore files and folders (at the bottom). It also uses standard positive/inclusion patterns (use *.sql to exclude sql files instead of !*.sql etc).Dissuade
K
100

In "Find in Path" and "Find in Files" (Ctrl+Shift+F) you can use the "File mask" input.

For example, this would exclude all js, css and twig:

!*.js, !*.css, !*.twig

PhpStorm File Masks for Find in Path

It's handy cause it also keeps a list of previous inputs, but it gets messy easily when you add a lot of extensions. If it gets too crowded, consider excluding some folders as well (right-click -> "Mark directory as" -> "Excluded")

Kadner answered 5/6, 2019 at 15:44 Comment(2)
Frustrating that this is not documented anywhere in the docs but this is exactly what I wantedReparative
it does not work for me, it only takes the 1st filter, am using intellij 2022.2.4 ultimate editionFrancesco
L
59

You can create custom scope there: In 'Find in Path' dialog you can check radio button 'Custom' and open scopes window. There you can customize path and search pattern.

enter image description here

Examples of Patterns for Pattern field:

  • !file:*.css - exclude CSS files
  • file[MyMod]:src/main/java/com/example/my_package//* - include files from the directory in a project.
  • src[MyMod]:com.example.my_package..* - recursively include all files in a package.
  • file:*.js||file:*.coffee - include all JavaScript and CoffeeScript files.
  • file:*js&&!file:*.min.* - include all JavaScript files except those that were generated through minification, which is indicated by the min extension.

Or check the official documentation.

Good luck!

Longicorn answered 3/3, 2014 at 10:35 Comment(3)
So what is the pattern to exclude all CSS style sheets?Limitative
Sorry, it's in IntelliJ's documentation: jetbrains.com/idea/webhelp/scope-language-syntax-reference.html. For excluding CSS it's: !file:*.css.Limitative
You made my day! Finally, I can to exclude annoying test-cases.jsBluetongue
G
25

If you are like me that don't want to use the File Mask option or create a custom scope, etc. but just wanted to be able to add it to project settings one time and be done with it, then here's a solution for you.

I wanted my Find in Path to not search in lock files (auto-generated manifest file by package managers), here's what I had to do for that:

Goto File >> Project Structure (or just press Command+;)

Select Modules under Project Settings

enter image description here

Add a pattern or file names to the Exclude files text-box, in this case: *.lock;package-lock.json and hit Apply, and then ok.

intellij-project-structure-screenshot

Note The above option is available in IntelliJ 2019 and versions after that, not sure about older versions. For more info, https://www.jetbrains.com/help/phpstorm/excluding-files-from-project.html

Gerger answered 1/8, 2019 at 22:47 Comment(7)
The problem with this is that it also excludes files with those extensions from the build right, not just from searches!?Unboned
@Unboned as far as I know, it will only exclude the file from searches, code completion, inspections, etc. pretty much excluded from indexing. Checkout this article from JetBrains, jetbrains.com/help/phpstorm/excluding-files-from-project.htmlGerger
The description is not good. It took me 5 minutes to find find this option in Project Structure. Please add another screenshot showing where exactly to find this.Thadthaddaus
@ArunKarnati Great! Thanks!Thadthaddaus
Once you click on a module, you have to click "Sources" for "Exclude files" to appear.Kristine
This is a proper answer. Thank you!Veta
Many thanks, it works well, so many time lost at filtering this *.lock files. No it's over. Many love on youHua
S
8

WebStorm 2021

CTRL+SHIFT+F and follow the pictures

enter image description here

enter image description here

Spoiler answered 7/5, 2021 at 11:39 Comment(0)
Y
5

For 2019.2, the pattern is not set in scope but in the right top windows "File mask" in Find in path dialog. You must tick it.

The syntax I tested are:

  • exclude files with extension css: !*.css
  • exclude all under out dir: !out/*

Patterns are separated by comma.

Reference: https://www.jetbrains.com/help/idea/finding-and-replacing-text-in-project.html

Yand answered 17/1, 2020 at 13:6 Comment(0)
I
3

For 2021.3.2, just right-click to the folder and Mark Directory as -> Excluded. This will work for logs etc but be careful about source folders.

Indispensable answered 4/3, 2022 at 13:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.