Eclipse:如何在Project Explorer中隐藏自定义文件

问题描述

| 我在CDT中有一个自定义生成器,它将大量文件添加到项目目录中。我希望从Project Explorer中过滤掉这些文件,但无法弄清楚(文件掩码为* .ooj)。 是否可以在“自定义视图”中按文件掩码添加自定义过滤器?也许还有其他方法可以在Project Explorer中隐藏文件?     

解决方法

这是在Eclipse Indigo / Luna / Neon上的操作方法(截至2018-05-22): 打开“项目属性” 下拉菜单->项目->属性 将会出现一个名为“属性”的新对话框。 创建一个“资源过滤器” 选择资源->资源过滤器->添加过滤器... 将会出现一个名为“添加项目的资源过滤器”的新对话框。 在新对话框中,选择以下内容 过滤器类型:全部排除 适用于:文件 确保单击“所有子代(回生)”复选框 文件和文件夹属性 选择:名称 选择:匹配项 填写:*。ooj 点击确定 对话框关闭 应用新的过滤器 点击应用 您应该在“导航器”视图中看到一个更改 关闭“项目属性” 点击确定 完成     ,您可以为此定义一个过滤器。在“程序包资源管理器”中打开视图菜单,然后选择\“ Filters ... \”在这里您可以定义隐藏文件的模式。     ,如何将全局用户定义的资源过滤器添加到Eclipse Project Explorer视图: 在项目级别上修改和切换过滤器需要大量的单击,如果您的工作空间中有很多项目,可能会很乏味。如果您需要一次又一次在所有项目上应用或切换相同的过滤器设置,则可能希望为所有项目和所有工作区提供一种更快,更全面的解决方案。 修改
plugins/org.eclipse.ui.navigator.resources_{version}.jar
中的文件
plugin.xml
plugin.properties
(提取,修改并重新添加修改后的文件)。 例如,将元素“ 4”中的“仅文件”过滤器添加到元素“ 4”中:
<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>
再举一个例子,在“ 0”中将文件和目录过滤器添加到同一元素:
<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>
提供
plugin.properties
中所有已添加过滤器的过滤器名称和描述。无论过滤器类型如何,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}\"
重新启动Eclipse并重置其缓存:
eclipse.exe -clean
    ,首先感谢@emmzett 只是想用emmzett答案的详细方式进行解释,因为我对编辑插件文件一无所知,因此我花了2个小时。也许我可以用这个明确的表达方式节省您的时间。 首先进入eclipse文件,然后 plugins-> org.eclipse.ui.navigator.resources_(您的日蚀版本).jar 右键单击.jar文件,然后使用winrar打开 找到用编辑器(记事本,记事本++等)打开的“ 0”
plugin.xml
文件 找到
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>
用唯一的ID更改
SpecifyAnIdForYourFileType
用特定的文件后缀(例如
*.pdf
desktop.ini
等)更改
\"your specific file\"
。 保存
plugin.xml
并退出 用与3.step相同的编辑器找到
plugin.properties
打开 粘贴此代码
filters.SpecifyAnIdForYourFileType.name=your specific file files
filters.SpecifyAnIdForYourFileType.description=Hides files that match your specific file
保存
plugin.properties
并退出 重新启动Eclipse并清除缓存,而不是转到ѭ23 左边 点击右上角的
View Menu
图标 点击the25ѭ 在
Filters
菜单中勾选新的过滤器。 我要再次感谢emmzett。 问候。