当前位置: 首页 > 面试题库 >

Eclipse插件可精细监视编辑器更改

柯波娃
2023-03-14
问题内容

因此,我希望为Eclipse 4.2开发一个插件,该插件可以监视用户对其文件的编辑。

这是我的第一个Eclipse插件,并且准备工作,我浏览了Eclipse插件开发备忘单(HelloWorld),并在help.eclipse.org上花费了很多时间来浏览文档和API。我认为我对所需的工具有所了解,但是我不确定如何将这些工具组合在一起以完成所需的工作。

期望的结果
:拥有一个插件,该插件可以随时了解添加到(Java)编辑器中的每个新字母以及所有删除内容的信息。这包括Eclipse所做的事情(自动完成变量,花括号)以及用户键入的内容。

可能 有用的 工具 :我认为 IResourceChangeListener 将提供帮助,因为它为我提供了
IResourceChangeEvent ,并具有可访问的 IResourceDelta
,它代表工作区更改。另外,由于编辑器扩展了EditorPart,因此我认为向相关编辑器添加 IPropertyChangeListener
也可能很有用。

我认为我拥有正确的工具,但我不知道如何组装它们以完成我希望的工作。

问题
上面列出的工具适合该工作吗?
如何获得所有已打开或将要打开的编辑器的列表,并向它们添加侦听器?
关于如何编程Eclipse插件的资源的其他提示吗?


问题答案:

Krumelur的秘诀给了我一个很好的起点。DocumentEvent返回的s
IDocumentListener足够细,可以通过对发生的情况进行字符分析来给我一个字符。

IEditorPart editor = ...;  
IEditorInput input = editor.getEditorInput();  
IDocument document=(((ITextEditor)editor).getDocumentProvider()).getDocument();

document.addDocumentListener(new IDocumentListener() {

        @Override
        public void documentChanged(DocumentEvent event) 
        {
            System.out.println("Change happened: " + event.toString());
        }

        @Override
        public void documentAboutToBeChanged(DocumentEvent event) {
            System.out.println("I predict that the following change will occur: "+event.toString());


        }
    };
});

就我应该扩展的内容而言,我扩展org.eclipse.ui.startup并添加了一系列侦听器,直到获得类似于上面的代码为止。

我希望这对正在寻找我的人有所帮助。



 类似资料:
  • 问题内容: 我见过Veloedit,它看起来语法高亮,但是不允许正在编辑的文件中的制表符(wtf?),并且也不了解HTML。 通过一点点搜索,我发现了Veloecipse,它声称是在Veloedit的基础上开发的,并且还添加了HTML支持- 但似乎与Eclipse 3.4不兼容 。 是否还有其他任何人正在使用的其他Velocity模板编辑器插件? 理想的解决方案应具有以下功能: VTL的语法重点

  • 下面的编辑器插件package可用: TextMate Mocha的TextMate包包含了能够加速测试编写的代码片段。 JetBrains JetBrains为它们的IDE套件(IntelliJ IDEA,WebStorm等)提供了一个NodeJS插件,包含了一个Mocha test runner,和一些周边。 该插件名为NodeJS,可以通过Preference > Plugins安装,如果你

  • 是否可以在编辑器文件夹堆栈中添加占位符? 目前,我可以将视图(拖放)移动到编辑器旁边,但我希望它们直接在那里打开。

  • 我已经定义了标准的TextEditor来打开.git文件。(GitHub代码) 然而,这段代码改变了TextEditor的图标,无论我打开什么文件。 是自定义文本编辑器的唯一方法吗?是否只有文件类型才有特定的扩展点? 让事情变得更加复杂(我不喜欢idea详细说明所有这些项目)

  • 问题内容: 当用户编辑with 属性的内容时,我想运行一个函数。什么相当于一个事件? 我使用的是jQuery,因此首选使用jQuery的解决方案。谢谢! 问题答案: 我建议将侦听器附加到由editable元素触发的关键事件上,尽​​管您需要注意,并且在更改内容本身之前会触发事件。这不会涵盖更改内容的所有可能方法:用户还可以从“编辑”或上下文浏览器菜单中使用剪切,复制和粘贴,因此您可能也想处理和事件

  • Dokuwiki编辑器问题 1:Dokuwiki环境搭建 1.1:Dokuwiki自带安装文件 安装文件入口:/install.php 界面安装很方便 1.2:Dokuwiki自带zh-cn包 2:直接拷贝图片到编辑器   2.1:自带编辑器介绍 自带编辑器不支持所见所得,依靠一些标签来建立目录和页面排榜,尽管标签很强大,但是对于初学者或者不熟悉的人来说,比较麻烦. 2.2:更换流程及需求分析思考