如何在当前打开的编辑器中用另一个String替换特定的String?

时间:2012-03-05 07:44:01

标签: java eclipse eclipse-plugin

嗨,我正在做一个eclipse插件项目来创建一个IDE。在我的IDE中,  检查当前打开的编辑器是否有特定的字符串  由在侧面的文本框中输入的字符串替换  视图。我能够访问编辑器,但如果我搜索特定的  string并将该字符串替换为用户输入的输入  没有用。

 IDocumentProvider provider=((AbstractTextEditor) ieditorpart).getDocumentProvid();
 IDocument doc = provider.getDocument(ieditorpart.getEditorInput());  
 String content = doc.get();
 pos=content.compareTo("\\/\\*ProbeEnd\\*\\/");
 doc.replace(pos,5, "hello");

但这不起作用......我刚刚给出了替代品  string为hello,但该值应取自文本框..

访问编辑器有什么错误吗?我应该用这个吗?  这样做的方法还是有任何方法来实现这一点?能够  有人帮我这么做吗?

2 个答案:

答案 0 :(得分:1)

为什么变量'pos'是compareTo-Value(-1,0,1)? compareTo返回两个字符串的词典顺序。

IDocument的替换方法有三个参数:

  • int offset - 文档中的偏移量,应插入“text”
  • int length - 从'offset'开始的长度,应该被覆盖。长度0表示插入。
  • 字符串文字 - 替换文字

示例:

String oldContent = doc.get();
assert oldContent.equals("TestingText");

String replaceText = "REPLACE";

doc.replace(5,3,replaceText);

String newContent = doc.get();
assert newContent.equals("TestiREPLACEext");
//offset 5 is the position after 'Testi'
//length 3 means 'ngT' (starting from the offset) should be replaced
//REPLACE is the newText

答案 1 :(得分:0)

从编辑器中调用firePropertyChange(IEditorPart.PROP_INPUT)。