我正在使用eclipse插件创建一个项目来创建一个IDE。
我有一个由文本框组成的视图,当我在其中输入一些文本并按下添加按钮时,文本应该替换编辑器中的特定字符串。 我能够找到当前的编辑器,但我不知道如何找到要替换的字符串的位置。
有人可以帮我这么做吗?
答案 0 :(得分:3)
不是自己动手,而是使用String.replaceFirst()
或String.replaceAll()
进行替换会不会更容易?
您需要做的就是从目标编辑器“获取”当前文本String
,进行替换,然后将生成的String
“设置”回目标编辑器。
我不熟悉Eclipse,但是大多数文本字段可能会实现像JTextComponent
这样的抽象类,它有getText()
和setText()
方便的方法。
答案 1 :(得分:2)
如果您有对编辑器的引用,并且它是ITextEditor,您可以使用
IDocumentProvider provider = editor.getDocumentProvider();
IDocument doc = provider.getDocument(editor.getEditorInput());
String content = doc.get();
现在您已拥有内容,并且您可以在此字符串中找到某些代码的位置。
如果您有替换文本的偏移量和要替换的长度,您可以调用
doc.replace(offset,length,newText);
如果您在eclipse中使用编辑器和视图,请首先阅读编辑器的概念,以及如何在多个编辑器之间提供和共享数据。
Adreamus
/编辑:我无法发表评论,但我会在此发布:保罗韦伯斯特的另一个答案使用了弃用的“搜索”功能。建议改为使用FindReplaceDocumentAdapter。方法'find'返回一个IRegion,wchich包含与此适配器连接的文档中的偏移量和长度。
答案 2 :(得分:1)
见How do I use the text document model。这描述了在处理基于Eclipse Text的编辑器时如何实现搜索和替换。