上一節實作了自動提示,本節將實作另一項核心功能:原始碼即時校驗(Reconciliation)。所謂即時校驗,即在使用者編輯過程中(未儲存時),即時對變更內容進行驗證,並即時反饋錯誤或提示資訊。本節以標籤即時校驗為例,示範如何客製化 WTP StructuredTextEditor 的即時校驗功能。

圖中展示:刪除 </jsp:text> 瞬間,編輯器即給出錯誤提示。這類即時校驗在 Java 原始碼編輯器等主流編輯器中也很常見。
原始碼編輯對應的控件是 ISourceViewer,校驗自然是其提供的服務。JFace Text Framework 提供了相應的介面與運行原理:
IReconciler(org.eclipse.jface.text.reconciler.IReconciler)扮演「調解者」角色:當文檔發生變化時,根據分區類型提供相應的調解策略(即驗證策略)。
public interface IReconciler {
void install(ITextViewer textViewer);
void uninstall();
IReconcilingStrategy getReconcilingStrategy(String contentType);
}
掌握 IReconciler 及其策略介面 IReconcilingStrategy,是實作自訂即時校驗的關鍵。