2013-01-13 34 views
2

我正在編寫一個IntelliJ IDEA插件here,如AceJump,它用於IDE中的快速移動插入符號。如何讓IntelliJ IDEA的本地歷史記錄忽略插件的臨時更改並恢復到文檔?

如下所示,通過將TextAttributes應用於所有'我'出現,並給每個'我'一個索引字符。

enter image description here

用戶按「H」後,光標將移動到「我」的「私有」。 然後更改所有標記字符以原來的「我」

問題

  1. 這一行動將跳躍過程中更改文件內容。 所以會有如下的歷史變化。有沒有辦法忽略當地歷史管理中的變化?

  2. 按下Cmd-z後,會出現一個對話框,顯示「無法撤消」。如何避免這一點?

enter image description here

enter image description here

+0

這個問題的最終插件:http://plugins.jetbrains.com/plugin/?idea_ce&pluginId=7163 – whunmr

回答

3

除了更改文件內容,你應該畫你的導航標記使用過的文檔,例如HintManager類。

如果更改實際的文檔內容,除了破壞撤消和本地歷史記錄之外,還會有更多的後果 - 例如,文檔將被重新整理,導致顯示錯誤的語法錯誤;任何其他插件或IntelliJ IDEA組件都會監​​視文檔的更改,並會對此做出反應;如果用戶正在使用諸如Perforce等需要明確結賬操作的VCS,則將從VCS檢出文檔;等TL/DR:不這樣做。

+0

+1的好主意,謝謝 – whunmr