下面列出了org.eclipse.jface.text.source.ISourceViewer#invalidateTextPresentation ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Recomputes partitioning and refreshes editor, in case there are disabled code regions.
*
* @param ast
*/
private void repartitionAndRefresh(final ModulaAst ast)
{
InactiveCodeRefresher inactiveCodeRefresher = new InactiveCodeRefresher(ast, new ITextPresentation() {
@Override
public boolean isDisposed() {
return ModulaEditor.this.isDisposed();
}
@Override
public void invalidateTextPresentation() {
ISourceViewer sourceViewer = ModulaEditor.this.getSourceViewer();
if (sourceViewer != null) {
sourceViewer.invalidateTextPresentation();
}
}
}, () -> getEditorDocument(this));
inactiveCodeRefresher.refresh();
}
@Override
protected void handlePreferenceStoreChanged(PropertyChangeEvent event) {
ISourceViewer sourceViewer = getSourceViewer();
if (sourceViewer == null || sourceViewer.getTextWidget() == null)
return;
super.handlePreferenceStoreChanged(event);
boolean tokenStyleChanged = event.getProperty().contains(".syntaxColorer.tokenStyles");
if (tokenStyleChanged) {
textAttributeProvider.propertyChange(event);
initializeViewerColors(sourceViewer);
sourceViewer.invalidateTextPresentation();
}
}
protected void setupPresentationReconciler(PresentationReconciler reconciler, ISourceViewer sourceViewer) {
// Must be called from UI thread
assertTrue(Display.getCurrent() != null);
// Create a token registry for given sourceViewer
TokenRegistry tokenRegistry = new TokenRegistry(colorManager, stylingPrefs) {
@Override
protected void handleTokenModified(Token token) {
sourceViewer.invalidateTextPresentation();
}
};
addConfigurationScopedOwned(sourceViewer, tokenRegistry);
ArrayList2<AbstractLangScanner> scanners = new ArrayList2<>();
for(LangPartitionTypes partitionType : getPartitionTypes()) {
String contentType = partitionType.getId();
AbstractLangScanner scanner = createScannerFor(Display.getCurrent(), partitionType, tokenRegistry);
scanners.add(scanner);
DefaultDamagerRepairer dr = getDamagerRepairer(scanner, contentType);
reconciler.setDamager(dr, contentType);
reconciler.setRepairer(dr, contentType);
}
}
protected void setupPresentationReconciler(PresentationReconciler reconciler, ISourceViewer sourceViewer) {
// Must be called from UI thread
assertTrue(Display.getCurrent() != null);
// Create a token registry for given sourceViewer
TokenRegistry tokenRegistry = new TokenRegistry(colorManager, stylingPrefs) {
@Override
protected void handleTokenModified(Token token) {
sourceViewer.invalidateTextPresentation();
}
};
addConfigurationScopedOwned(sourceViewer, tokenRegistry);
ArrayList2<AbstractLangScanner> scanners = new ArrayList2<>();
for(LangPartitionTypes partitionType : getPartitionTypes()) {
String contentType = partitionType.getId();
AbstractLangScanner scanner = createScannerFor(Display.getCurrent(), partitionType, tokenRegistry);
scanners.add(scanner);
DefaultDamagerRepairer dr = getDamagerRepairer(scanner, contentType);
reconciler.setDamager(dr, contentType);
reconciler.setRepairer(dr, contentType);
}
}