eclipse插件开发求助
本人新手,现在正在开发eclipse的插件,遇到了点问题。问题如下:
1、
当我用 IResource ir = (IResource) ((IAdaptable) ob).getAdapter(IResource.class); 后,我如何能判别所选到的 ir 是文件还是文件夹 (先是用 selection = (IStructuredSelection) window.getSelectionService().getSelection(); Object obj = selection.getFirstElement();获得了所选文件。)。我用IResource是因为我尝试过IFolder(碰到package的时候就悲剧)和IFile(碰到java文件就悲剧)。
2、
当判断好文件类型(或者是文件夹)后,我想用我的插件调用其它插件,比如:我所选的文件夹中既有java文件,又有c/c++文件,还有图片文件。我有一个插件专门用来处理java文件,一个插件专门处理c/c++文件,还有一个插件专门处理图片文件。如何才能实现让我的插件根据文件类型分别调用其他插件。
问题一我暂时尝试用识别扩展名来识别文件类型,但是我觉得这样漏洞很大,比如说c/c++有些header文件的扩展名是乱取的。所以求更好的方法(不知道eclipse有没有文件对应的natureID,project倒是有)。现在的主要瓶颈是问题2,求高人指点。
谢谢。
eclipse插件 --------------------编程问答--------------------
--------------------编程问答-------------------- 1. 直接 ir instanceof IFile或者 if.getType()==IResource.File都可以
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
id="XXX"
nameFilter="*.java"<!-- 这个属性可以过滤文件类型的-->
objectClass="org.eclipse.jdt.core.IJavaElement">
<menu
icon="icons/sample.gif"
id="XXX"
label="java"
path="additions">
<separator
name="separator2">
</separator>
</menu>
</objectContribution>
</extension>
2. 基本上就是用扩展名了,没别的好办法;如果真的会“乱取”,那么只要扫描文件内容了。
不知道你所谓的“调用什么概念”,如果你确定只需要处理确定的几种类型,那么完全可以写死;比如java文件就调用JavaProcessor。
如果需要动态的增加,可以利用eclipse的扩展点体系做;就像eclipse中,不同的文件类型,用不同的编辑器打开一样。参考:
http://www.vogella.com/articles/EclipseExtensionPoint/article.html --------------------编程问答-------------------- 2楼的大大,我的问题是这样的,比如我有一个插件专门查java文件的bug,一个插件专门查c/c++文件的bug,一个插件专门查xml文件的bug,但是这些插件都不是我写的(网上找的)。然后我想做个插件,就是当我选中一个文件或者文件夹时,我点Run my debug(假设我的label)是这样,然后我的插件就会先识别选中的是哪类文件,然后根据文件类型对应的呼叫那些已装的插件,请问这该如何实现?瓶颈中,谢谢 --------------------编程问答-------------------- 要看那些插件的代码,直接通过调API的方式,调他们的检查函数就行了?
没有“呼叫”一说
你要做什么事情,就写什么代码; 比如你现在确定了是Java文件,那么你就要找出Java检查的插件中,进行检查的代码该怎么写,然后就写到你这里就行了
通过添加依赖插件的方式,一个插件就可以调用另外插件的代码了 --------------------编程问答-------------------- 郁闷,好麻烦啊,如何调他们的检查函数呢?我依旧在努力中,谢谢dollyn的热心回复。 --------------------编程问答-------------------- 请问一下 为什么我调用IFile 和 IFileEditorInput的时候总是报错呢?
Import也找不到他们。特别奇怪。
补充:Java , Eclipse