2014-03-06 39 views
0

我有包含編輯器內代碼的文本文件。用戶可以對其代碼的某個部分進行分析,這將導致應該隱藏的一組行。接下來,我想僅向用戶展示其餘行,但與正確的亞麻布,從原始文檔。可能的解決方案我想到:Eclipse-RCP:永久隱藏文本行,保留正確的行號

  1. 打開一個新的編輯器,不包含隱藏線,但*莫名其妙*仍然有正確的行號

  2. 隱藏在原始的編輯線,並提供用戶可以「取消隱藏」按鈕。可能需要一個類似的解決方案在1.

我真的不知道如何去做這件事。摺疊將是一個奇怪的解決方案,因爲它們可以單獨展開,並且似乎在語義上與方法或類相關聯。另外,僅僅創建一個沒有隱藏線條的新文檔會導致錯誤的亞麻布數量。

+0

這個編輯器是一個現有的編輯器,比如Java編輯器或者你會寫的東西嗎?對於你編寫的編輯器,你應該能夠控制行號標尺,對於現有的編輯器來說,它會更難。 –

+0

它是一個已經編寫好的編輯器,但不是現有的編輯器(比如Java編輯器),所以我可以改變我想要/需要的。我看着行號標尺,但看不到一個簡單/有意的方式來跳過某些行號。 – Futile

回答

0

使用ProjectionViewer和反射來調用私有方法ProjectionViewer.collapse(int offset int length)。此方法僅用於內部隱藏文本的某個部分,方法是操作ProjectionDocument(請參閱http://eclipse.org/articles/Article-Folding-in-Eclipse-Text-Editors/folding.html)。

之後,使用註釋(小+/-圖標)摺疊編輯器中的文本將打破一切,所以這種解決方案和常規摺疊是互斥的。