X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2Fscl%2FscriptEditor%2FSCLScriptAnnotationModel.java;h=6653422dde16055df325de5d9602ca942b5e525c;hp=fadb4f909f9c679aeb52f11247e45e1a21cf3c06;hb=2bc508bb935f99de104bd25935f23c474de7f1ca;hpb=123ffb4e766047e37270bfffd46363ac85cdc4f9 diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/scriptEditor/SCLScriptAnnotationModel.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/scriptEditor/SCLScriptAnnotationModel.java index fadb4f909..6653422dd 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/scriptEditor/SCLScriptAnnotationModel.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/scriptEditor/SCLScriptAnnotationModel.java @@ -14,6 +14,10 @@ package org.simantics.modeling.ui.scl.scriptEditor; import java.util.Arrays; import java.util.List; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.Position; import org.eclipse.jface.text.source.Annotation; @@ -51,7 +55,7 @@ public class SCLScriptAnnotationModel extends AnnotationModel { @Override public void execute(String result) { if (connected && result != null) - updateAnnotations(result); + scheduleUpdateAnnotations(result); } @Override public void exception(Throwable t) { @@ -72,6 +76,21 @@ public class SCLScriptAnnotationModel extends AnnotationModel { public void print(String text) {} }; + private void scheduleUpdateAnnotations(String sourceText) { + //LOGGER.debug("scheduleUpdateAnnotations:\n" + sourceText); + Job validateJob = new Job("Validate Script") { + @Override + protected IStatus run(IProgressMonitor monitor) { + updateAnnotations(sourceText); + return Status.OK_STATUS; + } + }; + validateJob.setPriority(Job.BUILD); + validateJob.setUser(false); + validateJob.setSystem(false); + validateJob.schedule(); + } + private void updateAnnotations(String sourceText) { //LOGGER.debug("updateAnnotations:\n" + sourceText); CompilationError[] errors = new CommandSession(repository, NOP).validate(sourceText);