(1)新建一个插件工程
(2)插件的相关信息
ID:插件的ID
VERSION:插件的版本
NAME:插件的名字
VENDOR:插件开发者的信息
ACTIVATOR:插件的激活类,管理插件生命周期,这里我们需要勾选Generator为我们自动创建一个插件激活类
以及YES 或者NO选择是否为富客户端RCP工程,这里选择NO
(3)创建Hello World模板
我们学习任何语言都是以Hello world开始的 eclipse也为我们提供了Hello world插件模板
(4)插件的相关信息设置
包名、操作类、提示信息
(5)点击完成
因为我们选择了Hello world 模板创建插件,eclipse为我们创建了插件要用到的图片,源文件等等
点击plugin.xml选择manifest.mf选项,可以看到如下信息:
Name 是我们之前设置的插件名字
SymblicName 是我们插件的包名
version 是插件的版本
Activator 是插件的激活类
Vendor 是插件开发者的信息
Bundle 是插件以来的库
Require-Bundle插件依赖项
运行的环境以及懒加载
打开plugin.xml项
共4个extension元素,分别对应了EXTENSION选项的4个依赖
第一个extensions 扩展自org.eclipse.ui.commands 代表一个命令 子元素category是命令的分类command描述命令的ID NAME CATEGORY(属于哪个分类)
第二个extensions 扩展自org.eclipse.ui.handlers 代表操作 子元素handler 包含了这个操作的命令ID(这里是第一个extensions 元素的command元素的id)和对应的操作类
第三个ectensions 扩展自org.eclipse.ui.bindings 是给COMMANID增加快捷键 M1+6代表了当按下快捷键Ctry+6时也会执行相应的命令、当然M2就是Shift ,这里加个额外的补充 如果你想让命令快捷键只 对某个编辑器或者试图有作用 那么可以扩展org.eclipse.ui.contexts扩展点
<extension
point="org.eclipse.ui.contexts">
<context
id="viewcommand.testcontext"
name="ViewContext"
parentId="org.eclipse.ui.contexts.window">
</context>
</extension>
你需要把 当前org.eclipse.ui.bindings扩展下面的contextid改为自己定义的viewcommand.testcontext,并且在相应的视图类(createControl方法) 或 编辑器的init中加上以下代码
IContextService contextService =
(IContextService) getSite().getService(IContextService.class);
contextService.activateContext("viewmenu.testcontext");
第四个extension扩展自org.eclipse.ui.menus菜单插件 包括了2个menuContribution 第一个是代表主菜单的 locationURI="menu:org.eclipse.ui.main.menu?after=additions" menu是菜单的意思,后面跟着主菜单ID 和after=additions(代表该菜单出现在指定菜单的位置)。locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions"这个同样意思就是放到工具栏中 其实扩展方式有很多种,这里采用的是Commands 方式,其他剩余的信息就是新建的菜单和工具栏绑定的命令ID以及图片资源等等。
(6)运行插件
点击运行图标或者点击项目右键run as 记得以application方式运行 就可以看见又出现了一个eclipse 可以看到菜单Sample Menu和工具栏中多了一项 很小的eclipse图标点击或者按快捷键盘ctry+6就会弹出我们设置的提示信息了