2014-07-05 50 views
0

Eclipse Luna終於擁有了這個優秀的分割編輯器,並且我無法弄清楚如何讓我們的編輯器按照新功能的預期工作。我們有我們自己的自定義編輯器,它的行爲不像Luna中的Java編輯器。在我們的自定義編輯器中對分割編輯器的一半進行編輯時,分割的其他部分只會在文檔保存時更新以匹配。而使用Java編輯器,更新發生在每個角色的「真實」時間。我希望我們的編輯器不用像Java編輯器那樣保存就更新每個字符。Eclipse Luna分割編輯器僅在保存時使用自定義編輯器更新

我想我可以創建一個新的Eclipse編輯器插件來查看它是否像Java編輯器那樣工作,但不幸的是它的行爲就像我們的自定義編輯器。

我已經做了一些Google搜索,但一直沒能找到關於這個特定主題的任何內容。事實上,我找不到任何解釋分割編輯器工作原理的東西。我能夠收集到它創造了編輯的另一個實例,但這就是它。

有誰知道如何使用Eclipse Luna拆分編輯器功能在定製編輯器中複製此「真實」時間文檔更新?

編輯14年6月7日:我們的編輯器擴展org.eclipse.ui.editors.text.TextEditor

+0

是基於TextEditor還是其他的編輯器?我的猜測是,文本編輯器有一個共同的'IDocument',並對文檔更改的事件作出響應。 –

+0

是的,它基於'TextEditor'。我會研究這個想法。謝謝。 – Guy

回答

2

當使用一個明確的文件提供者可能會出現的問題。

例如,XML編輯器示例代碼使用了這一點:

setDocumentProvider(new XMLDocumentProvider()); 

,但爲了使新的分割編輯代碼工作,完全相同的文件提供者必須在第二裂編輯器窗口是被退回初始化。解決方法是使文檔提供程序實例保持靜態。這似乎工作:

private static XMLDocumentProvider provider = new XMLDocumentProvider(); 
    ... 
    setDocumentProvider(provider); 

如果您使用的是明確的文件提供者由於某種原因不能是靜態的(共享),另一種解決辦法可能難以找到。

我在這個問題上提出了一個錯誤,但到目前爲止一直沒有任何迴應或評論。