eclipse插件开发-新增简单编辑器
eclipse中同一时间只有一个编辑器可见,但是可以打开同一编辑器的多个实例。
编辑器一般分为两种类型:文本编辑器和图形编辑器。
编辑器常用功能有:打开文件、保存文件、编辑文件、撤销、重做。
下面介绍下一个简单的编辑器插件的开发步骤。
1. 新建一个空的插件工程,工程名com.page.demo.editor
2. 打开MANIFEST.MF文件,切换到Extensions选项卡,在其中加入org.eclipse.ui.editors扩展点
3. 修改plugin.xml
<plugin> <extension point="org.eclipse.ui.editors"> <editor class="com.page.demo.editor.SimpleEditor" default="false" extensions="hello" icon="icons/sample.png" id="com.page.demo.editor.simpleEditor" name="Simple Editor"> </editor> </extension> </plugin>
id:编辑器的标识,用户可根据该标识在代码中访问
name:编辑器名称
extensions:编辑器对应的扩展名,当打开对应扩展名的文件时,就会打开相应的编辑器
class:编辑器的实现类,用户打开编辑器时,会调用此类初始化并维护编辑器
icon:编辑器显示的图标
4. 编辑实现类SimpleEditor,需继承EditorPart
package com.page.demo.editor; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; public class SimpleEditor extends EditorPart { @Override public void doSave(IProgressMonitor monitor) { } @Override public void doSaveAs() { } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(input); setPartName("Hello, simple editor!"); } @Override public boolean isDirty() { return false; } @Override public boolean isSaveAsAllowed() { return false; } @Override public void createPartControl(Composite parent) { Label label = new Label(parent, SWT.LEFT); label.setText("Nice day!"); } @Override public void setFocus() { } }
5. 右键项目,Run as-Eclipse Application。此时会打开一个新的eclipse实例,在其中新建一个java工程,新建一个hello后缀的文件,打开,即可看到编辑器打开了
源码路径:https://gitee.com/pageone/eclipse-plugin