aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java')
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
index e8f97d51..ae8c70e0 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
@@ -16,6 +16,7 @@ import org.eclipse.xtext.nodemodel.INode;
16import org.eclipse.xtext.nodemodel.util.NodeModelUtils; 16import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
17import org.eclipse.xtext.service.OperationCanceledManager; 17import org.eclipse.xtext.service.OperationCanceledManager;
18import org.eclipse.xtext.util.CancelIndicator; 18import org.eclipse.xtext.util.CancelIndicator;
19import org.jetbrains.annotations.NotNull;
19import tools.refinery.language.model.problem.*; 20import tools.refinery.language.model.problem.*;
20import tools.refinery.language.utils.ProblemDesugarer; 21import tools.refinery.language.utils.ProblemDesugarer;
21import tools.refinery.language.utils.ProblemUtil; 22import tools.refinery.language.utils.ProblemUtil;
@@ -94,9 +95,16 @@ public class ProblemSemanticHighlightingCalculator extends DefaultSemanticHighli
94 } 95 }
95 96
96 protected String[] getHighlightClass(EObject eObject, EReference reference) { 97 protected String[] getHighlightClass(EObject eObject, EReference reference) {
98 boolean isError = ProblemUtil.isError(eObject);
97 if (ProblemUtil.isBuiltIn(eObject)) { 99 if (ProblemUtil.isBuiltIn(eObject)) {
98 return new String[] { BUILTIN_CLASS }; 100 var className = isError ? ERROR_CLASS : BUILTIN_CLASS;
101 return new String[] { className };
99 } 102 }
103 return getUserDefinedElementHighlightClass(eObject, reference, isError);
104 }
105
106 @NotNull
107 private String[] getUserDefinedElementHighlightClass(EObject eObject, EReference reference, boolean isError) {
100 ImmutableList.Builder<String> classesBuilder = ImmutableList.builder(); 108 ImmutableList.Builder<String> classesBuilder = ImmutableList.builder();
101 if (eObject instanceof ClassDeclaration classDeclaration && classDeclaration.isAbstract()) { 109 if (eObject instanceof ClassDeclaration classDeclaration && classDeclaration.isAbstract()) {
102 classesBuilder.add(ABSTRACT_CLASS); 110 classesBuilder.add(ABSTRACT_CLASS);
@@ -105,8 +113,7 @@ public class ProblemSemanticHighlightingCalculator extends DefaultSemanticHighli
105 && desugarer.isContainmentReference(referenceDeclaration)) { 113 && desugarer.isContainmentReference(referenceDeclaration)) {
106 classesBuilder.add(CONTAINMENT_CLASS); 114 classesBuilder.add(CONTAINMENT_CLASS);
107 } 115 }
108 if (eObject instanceof PredicateDefinition predicateDefinition 116 if (isError) {
109 && predicateDefinition.getKind() == PredicateKind.ERROR) {
110 classesBuilder.add(ERROR_CLASS); 117 classesBuilder.add(ERROR_CLASS);
111 } 118 }
112 if (eObject instanceof Node node) { 119 if (eObject instanceof Node node) {