[英]How to replace a particular String with another String in the currently opened editor?
[英]how to get the position of a particular string in the editor that is currently opened?
我正在做一個使用eclipse插件創建IDE的項目。
我有一個包含文本框的視圖,當我在其中輸入一些文本並按添加按鈕時,該文本應替換編輯器中的特定字符串。 我可以找到當前的編輯器,但是我不知道如何找到要替換的字符串的位置。
有人可以幫我嗎?
而不是自己做,使用String.replaceFirst()
或String.replaceAll()
進行替換難道不是很容易嗎?
您需要做的就是從目標編輯器中“獲取”當前文本String
,進行替換,然后將結果String
“設置”回目標編輯器。
我對Eclipse不熟悉,但是大多數文本字段可能會實現一個抽象類,例如JTextComponent
,該類具有便捷的getText()
和setText()
。
如果您具有對編輯器的引用,並且它是ITextEditor,則可以使用
IDocumentProvider provider = editor.getDocumentProvider();
IDocument doc = provider.getDocument(editor.getEditorInput());
String content = doc.get();
現在您有了內容,並且可以找到此字符串中某些代碼的位置。
如果您有用於替換文字的偏移量和要替換的長度,則可以致電
doc.replace(offset,length,newText);
如果您在eclipse中使用“編輯器”和“視圖”,請首先閱讀編輯器的概念,以及如何在多個編輯器之間提供和共享數據。
Adreamus
/ edit:盡管我將在此處發布評論,但我無法發表評論:Paul Webster的另一個答案使用了不推薦使用的函數“搜索”。 建議改用FindReplaceDocumentAdapter 。 方法“ find”返回一個IRegion,其中包含與此適配器連接的文檔中的偏移量和長度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.