diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java index 84131e0c92066439f906c271dfdd943c96b808c2..c1a5fdc206083117ab7225d32043840fafad6c3d 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java @@ -109,11 +109,17 @@ public abstract class SQLEditorBase extends BaseTextEditor implements IErrorVisu syntaxManager = new SQLSyntaxManager(); ruleManager = new SQLRuleManager(syntaxManager); themeListener = new IPropertyChangeListener() { + long lastUpdateTime = 0; @Override public void propertyChange(PropertyChangeEvent event) { if (event.getProperty().equals(IThemeManager.CHANGE_CURRENT_THEME) || event.getProperty().startsWith("org.jkiss.dbeaver.sql.editor")) { + if (lastUpdateTime > 0 && System.currentTimeMillis() - lastUpdateTime < 500) { + // Do not update too often (theme change may trigger this hundreds of times) + return; + } + lastUpdateTime = System.currentTimeMillis(); reloadSyntaxRules(); // Reconfigure to let comments/strings colors to take effect getSourceViewer().configure(getSourceViewerConfiguration());