2010-01-10 64 views
2

我目前正在爲Eclipse編寫一個自定義編輯器插件。我已經覆蓋getAutoEditStrategies這樣的:Eclipse IAutoEditStrategy僅在退格時調用;如何讓它呼籲所有的編輯?

public IAutoEditStrategy[] getAutoEditStrategies(
    ISourceViewer sourceViewer, String contentType) { 
    return new IAutoEditStrategy[] { new KRLAutoEditStrategy() }; 
} 

並寫入最小的策略是這樣的:

public class KRLAutoEditStrategy implements IAutoEditStrategy { 
    public void customizeDocumentCommand(IDocument d, DocumentCommand c) { 
    System.out.println("Called."); 
    } 
} 

現在,當我打退格鍵,不爲任何其他字符customizeDocumentCommand只調用。我錯過了什麼?我還能如何實現自動縮進?

回答

0

我其實現在已經想出了這一個。我的策略非常好,但它不起作用,因爲我希望它應用到的編輯器分區沒有通過getConfiguredContentTypes暴露。

當您的着色或凹痕不起作用時,請確保您使用的分區具有正確的標記,並通過getConfiguredContentTypes曝光!當我爲所有分區使用不同的顏色並且其中一個沒有着色時,問題就變得很明顯。

1

看不到什麼毛病你自定義策略(幾乎相同的代碼正常工作對我來說),但實現了一些基本類型的自動縮進,你可以使用DefaultIndentLineAutoEditStrategy(它添加到由getAutoEditStrategies返回的數組)