简体   繁体   English

Eclipse:如何在项目资源管理器中隐藏自定义文件

[英]Eclipse: how to hide custom files in Project Explorer

I have a custom builder in CDT, which adds alot of files into project directory.我在 CDT 中有一个自定义构建器,它将很多文件添加到项目目录中。 I want those files to be filtered out from Project Explorer, but cannot figure out how (the file mask is *.ooj).我希望从 Project Explorer 中过滤掉这些文件,但无法弄清楚如何(文件掩码是 *.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?或者也许有另一种方法可以在 Project Explorer 中隐藏文件?

Here's how to do it on Eclipse Indigo/Luna/Neon (as of 2018-05-22):以下是在 Eclipse Indigo/Luna/Neon 上的操作方法(截至 2018 年 5 月 22 日):

  • Open the "project properties"打开“项目属性”
    • pull down menu --> Project --> Properties下拉菜单 --> 项目 --> 属性
    • A new dialog window named "Properties" will appear将出现一个名为“属性”的新对话框 window
  • Create a "Resource Filter"创建“资源过滤器”
    • Select Resource --> Resource Filters -> Add Filter... Select 资源 --> 资源过滤器 -> 添加过滤器...
    • A new dialog window named "Add Resource Filter for project" will appear将出现一个名为“为项目添加资源过滤器”的新对话框 window
    • In the new dialog select the following在新对话框 select 以下
      • Filter Type: Exclude All过滤器类型:全部排除
      • Applies to: Files适用于:文件
      • Make sure to click the checkbox for "All children (recusive)"确保点击“所有孩子(recusive)”复选框
      • File and Folder Attributes文件和文件夹属性
        • select: Name select:名称
        • select: Matches select:匹配
        • fill in: *.ooj填写:*.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完毕

How to add global user defined resource filters to the Eclipse Project Explorer view:如何将全局用户定义资源过滤器添加到 Eclipse 项目资源管理器视图:

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 and plugin.properties in plugins/org.eclipse.ui.navigator.resources_{version}.jar (extract, modify and re-add the modified files).修改plugins/org.eclipse.ui.navigator.resources_{version}.jar中的文件plugin.xmlplugin.properties和 plugin.properties (修改后的文件)。

  • For example, add a file only filter in plugin.xml to the element /plugin/extension @point="org.eclipse.ui.navigator.navigatorContent" :例如,将plugin.xml中的仅文件过滤器添加到元素/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:作为另一个示例,在plugin.xml文件和目录过滤器添加到同一元素:

     <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 .plugin.properties中为所有添加的过滤器提供过滤器名称和描述。 Filter display order in Project Explorer view is by this filter name regardless of filter type: Project Explorer 视图中的过滤器显示顺序是按此过滤器名称排列的,与过滤器类型无关:

     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重启 Eclipse 并重置其缓存: eclipse.exe -clean

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.在 Package 资源管理器中打开视图菜单,然后选择“过滤器...”在这里您可以定义隐藏文件的模式。

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.首先感谢@emmzett 只是想以详细的方式解释 emmzett 的回答,因为我对编辑插件文件一无所知,我花了 2 个小时在这上面。 Maybe I can save your time with this clarified expression.也许我可以用这个明确的表达来节省你的时间。

  1. Firstly go in eclipse file then plugins->org.eclipse.ui.navigator.resources_(your eclipse version).jar Firstly go in eclipse file then plugins->org.eclipse.ui.navigator.resources_(your eclipse version).jar
  2. Right click to.jar file and open with winrar右击.jar文件用winrar打开
  3. Find the plugin.xml open with an editor(notepad,Notepad++ etc) the plugin.xml file找到plugin.xml用编辑器(记事本、记事本++等)打开plugin.xml文件
  4. Find the point="org.eclipse.ui.navigator.navigatorContent" and paste code below找到point="org.eclipse.ui.navigator.navigatorContent"并粘贴下面的代码
    <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>
  5. Change SpecifyAnIdForYourFileType with a unique name for id Change "your specific file" with your specific file suffix like *.pdf or desktop.ini etc.使用 id 的唯一名称更改SpecifyAnIdForYourFileType使用您的特定文件后缀更改"your specific file" ,例如*.pdfdesktop.ini等。
  6. Save the plugin.xml and exit保存plugin.xml并退出
  7. Find the plugin.properties open with an editor same as 3.step Paste this code找到使用与 3.step 相同的编辑器打开的plugin.properties粘贴此代码
    filters. SpecifyAnIdForYourFileType .name= your specific file files filters. SpecifyAnIdForYourFileType .description=Hides files that match your specific file
  8. Save plugin.properties and exit保存plugin.properties并退出
  9. Restart the eclipse and clear cache than go to Project Explorer at the left side重新启动 eclipse 并清除缓存而不是 go 到左侧的Project Explorer
  10. Click the View Menu icon at the top right corner点击右上角的View Menu图标
  11. Click the Filters and Customization...单击Filters and Customization...
  12. Tick your new filter in the Filters menu.在“ Filters ”菜单中勾选您的新过滤器。

That's all I want to thanks again to emmzett.这就是我要再次感谢 emmzett 的全部内容。

Regards.问候。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM