当前位置: 首页 > article >正文

Eclipse 插件开发 5.2 编辑器 获取当前编辑器

Eclipse 插件开发 5.2 编辑器 获取当前编辑器

  • 1 获取活跃编辑器
  • 2 获取全部编辑器

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Click1
Bundle-SymbolicName: com.xu.click1;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: com.xu.click1.Activator
Bundle-Vendor: XU
Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.ui.editors,org.eclipse.ui.workbench.texteditor,org.eclipse.core.resources,org.eclipse.text
Bundle-RequiredExecutionEnvironment: JavaSE-24
Automatic-Module-Name: com.xu.click1
Bundle-ActivationPolicy: lazy

1 获取活跃编辑器

在 Eclipse RCP 插件开发中,获取编辑区(Editor)及其内容、判断当前活跃的编辑器,需要使用 Eclipse Platform 提供的 API,特别是 IWorkbench, IWorkbenchWindow, IWorkbenchPage, IEditorPart 等接口。

package com.xu.click1.handlers;import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.eclipse.ui.texteditor.ITextEditor;public class SampleHandler extends AbstractHandler {@Overridepublic Object execute(ExecutionEvent event) throws ExecutionException {IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();IEditorPart part = page.getActiveEditor();if (part instanceof ITextEditor) {ITextEditor editor = (ITextEditor) part;IDocumentProvider provider = editor.getDocumentProvider();IDocument document = provider.getDocument(editor.getEditorInput());System.out.println(String.format("%s:%s", editor.getTitle(), document.get()));}return null;}}

2 获取全部编辑器

package com.xu.click1.handlers;import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.eclipse.ui.texteditor.ITextEditor;public class SampleHandler extends AbstractHandler {@Overridepublic Object execute(ExecutionEvent event) throws ExecutionException {IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();for (IEditorReference ref : page.getEditorReferences()) {IEditorPart editor = ref.getEditor(false);if (null == editor) {System.out.println(String.format("%s未被编辑", ref.getTitle()));continue;}System.out.println(String.format("%s正在编辑:%s", ref.getTitle(), getEditContent(editor)));}return null;}private String getEditContent(IEditorPart part) {if (part instanceof ITextEditor) {ITextEditor editor = (ITextEditor) part;IDocumentProvider provider = editor.getDocumentProvider();IDocument document = provider.getDocument(editor.getEditorInput());return document.get();}return null;}}

在这里插入图片描述

http://www.lryc.cn/news/2394673.html

相关文章:

  • 讲述我的plc自学之路 第十二章
  • Visual Studio 的下载安装
  • C# 如何获取当前成员函数的函数名
  • 苍茫命令行:linux模拟实现,书写微型bash
  • 虚拟DOM和DOM是什么?有什么区别?虚拟DOM的优点是什么?
  • 累加法求数列通项公式
  • 鸿蒙NEXT应用加固工具哪家更好?国内主流的6款对比
  • 高效多线程图像处理实战
  • [特殊字符]《计算机组成原理》第 8 章 - CPU 的结构和功能
  • 第八篇:MySQL 备份恢复与数据安全管理实战
  • 系统是win11+两个ubuntu,ubuntu20.04和ubuntu22.04,想删除ubuntu20.04且不用保留数据
  • OramaCore 是您 AI 项目、答案引擎、副驾驶和搜索所需的 AI 运行时。它包括一个成熟的全文搜索引擎、矢量数据库、LLM界面和更多实用程序
  • GitHub 趋势日报 (2025年05月28日)
  • OpenCV CUDA模块图像处理------颜色空间处理之GPU 上交换图像的通道顺序函数swapChannels()
  • 回归任务损失函数对比曲线
  • Magentic-UI:人机协作的网页自动化革命
  • 计算机专业大学生常用的刷题,资源网站(持续更新)
  • Redisson学习专栏(二):核心功能深入学习(分布式锁,分布式集合,原子操作与计数器,事件与监听)
  • 医疗多模态共情推理与学习一体化网络构成初探
  • MySQL : MySQL的安装【CentOS 7】
  • EasyRTC嵌入式音视频实时通话SDK助力AI与IoT智能硬件打造音视频交互多场景应用
  • pod创建和控制
  • Unity数字人开发笔记——讯飞超拟人语音
  • C# 文件 I/O 操作详解:从基础到高级应用
  • OpenCV 第7课 图像处理之平滑(二)
  • Visual Studio笔记:MSVC工具集、MSBuild
  • 【Netty系列】核心概念
  • Axure中继器交互完全指南:核心函数解析×场景实战×避坑策略(懂得才能应用)
  • DeepSeek 赋能数字人直播带货:技术革新重塑电商营销新生态
  • 高端制造行业 VMware 替代案例合集:10+ 头部新能源、汽车、半导体制造商以国产虚拟化支持 MES、PLM 等核心应用系统