diff options
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.java | 13 |
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; | |||
16 | import org.eclipse.xtext.nodemodel.util.NodeModelUtils; | 16 | import org.eclipse.xtext.nodemodel.util.NodeModelUtils; |
17 | import org.eclipse.xtext.service.OperationCanceledManager; | 17 | import org.eclipse.xtext.service.OperationCanceledManager; |
18 | import org.eclipse.xtext.util.CancelIndicator; | 18 | import org.eclipse.xtext.util.CancelIndicator; |
19 | import org.jetbrains.annotations.NotNull; | ||
19 | import tools.refinery.language.model.problem.*; | 20 | import tools.refinery.language.model.problem.*; |
20 | import tools.refinery.language.utils.ProblemDesugarer; | 21 | import tools.refinery.language.utils.ProblemDesugarer; |
21 | import tools.refinery.language.utils.ProblemUtil; | 22 | import 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) { |