Eclipse: how to hide custom files in Project Explorer
EclipseEclipse CdtEclipse Problem Overview
I have a custom builder in CDT, which adds alot of files into project directory. I want those files to be filtered out from Project Explorer, but cannot figure out how (the file mask is *.ooj).
Is it possible to add a custom filter by file mask into Customize View? Or maybe there is anther way to hide files in Project Explorer?
Eclipse Solutions
Solution 1 - Eclipse
Here's how to do it on Eclipse Indigo/Luna/Neon (as of 2018-05-22):
- Open the "project properties"
- pull down menu --> Project --> Properties
- A new dialog window named "Properties" will appear
- Create a "Resource Filter"
- Select Resource --> Resource Filters -> Add Filter...
- A new dialog window named "Add Resource Filter for project" will appear
- In the new dialog select the following
- Filter Type: Exclude All
- Applies to: Files
- Make sure to click the checkbox for "All children (recusive)"
- File and Folder Attributes
- select: Name
- select: Matches
- fill in: *.ooj
- Click OK
- Dialog closes
- Apply the new filter
- Click Apply
- You should see a change in your "Navigator" View
- Close the "Project Properties"
- Click OK
- Done
Solution 2 - Eclipse
You can define a filter for that. Open the view menu in the Package Explorer and then choose "Filters..." Here you can define a pattern to hide files.
Solution 3 - Eclipse
How to add global user defined resource filters to the Eclipse Project Explorer view:
Modifying and switching filters on a project level needs a lot of clicks and can be tedious if you have many projects in your workspace. If you need to apply or switch the same filter settings on all projects again and again you might prefer a quicker and global solution for all projects and all workspaces.
-
Modify the files
plugin.xml
andplugin.properties
inplugins/org.eclipse.ui.navigator.resources_{version}.jar
(extract, modify and re-add the modified files). -
For example, add a file only filter in
plugin.xml
to the element/plugin/extension @point="org.eclipse.ui.navigator.navigatorContent"
:<commonFilter id="org.eclipse.ui.navigator.resources.filters.{unique-id-a}" name="%filters.{unique-id-a}.name" description="%filters.{unique-id-a}.description" activeByDefault="true|false"> <filterExpression> <and> <instanceof value="org.eclipse.core.resources.IFile"/> <test property="org.eclipse.core.resources.name" value="{file-wildcard-pattern-a}"/> </and> </filterExpression> </commonFilter>
-
As another example, add a file and directory filter in
plugin.xml
to the same element:<commonFilter id="org.eclipse.ui.navigator.resources.filters.{unique-id-b}" name="%filters.{unique-id-b}.name" description="%filters.{unique-id-b}.description" activeByDefault="true|false"> <filterExpression> <and> <adapt type="org.eclipse.core.resources.IResource"> <test property="org.eclipse.core.resources.name" value="{file-wildcard-pattern-b}"/> </adapt> </and> </filterExpression> </commonFilter>
-
Provide filter names and descriptions for all added filters in
plugin.properties
. Filter display order in Project Explorer view is by this filter name regardless of filter type:filters.{unique-id-a}.name={file-wildcard-pattern-a} files filters.{unique-id-a}.description=Hides files that match "{file-wildcard-pattern-a}" filters.{unique-id-b}.name={file-wildcard-pattern-b} files and folders filters.{unique-id-b}.description=Hides files and folders that match "{file-wildcard-pattern-b}"
-
Restart Eclipse and reset its caches:
eclipse.exe -clean
Solution 4 - Eclipse
Firstly thanks to @emmzett Just wanna explain in a verbose mode of emmzett's answer because I didn't know anything editing plugin files and I spent 2 hours on this. Maybe I can save your time with this clarified expression.
- Firstly go in eclipse file then plugins->org.eclipse.ui.navigator.resources_(your eclipse version).jar
- Right click to .jar file and open with winrar
- Find the
plugin.xml
open with an editor(notepad,Notepad++ etc) theplugin.xml
file - Find the
point="org.eclipse.ui.navigator.navigatorContent"
and paste code below<commonFilter id="org.eclipse.ui.navigator.resources.filters.SpecifyAnIdForYourFileType" name="%filters.SpecifyAnIdForYourFileType.name" description="%filters.SpecifyAnIdForYourFileType.description" activeByDefault="true"> <filterExpression> <and> <instanceof value="org.eclipse.core.resources.IFile"/> <test property="org.eclipse.core.resources.name" value="your specific file"/> </and> </filterExpression> </commonFilter>
- Change
SpecifyAnIdForYourFileType
with a unique name for id Change"your specific file"
with your specific file suffix like*.pdf
ordesktop.ini
etc. - Save the
plugin.xml
and exit - Find the
plugin.properties
open with an editor same as 3.step Paste this codefilters.SpecifyAnIdForYourFileType.name=your specific file files filters.SpecifyAnIdForYourFileType.description=Hides files that match your specific file
- Save
plugin.properties
and exit - Restart the eclipse and clear cache than go to
Project Explorer
at the left side - Click the
View Menu
icon at the top right corner - Click the
Filters and Customization...
- Tick your new filter in the
Filters
menu.
That's all I want to thanks again to emmzett.
Regards.