aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-01-03 02:13:15 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-01-03 13:33:55 +0100
commit2fe65e414ff3194cdddde01bea6818bbab5290e9 (patch)
treea597343718059a2ee8727a296e817f997876f248 /subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
parentrefactor: matching node names in CLI and web (diff)
downloadrefinery-2fe65e414ff3194cdddde01bea6818bbab5290e9.tar.gz
refinery-2fe65e414ff3194cdddde01bea6818bbab5290e9.tar.zst
refinery-2fe65e414ff3194cdddde01bea6818bbab5290e9.zip
feat(web): color identifiers and nodes
We use a palette-based coloring strategy, where each class and enum gets a color from
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.java11
1 files changed, 10 insertions, 1 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 ae8c70e0..4c775fc6 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
@@ -1,5 +1,5 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> 2 * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
@@ -38,6 +38,9 @@ public class ProblemSemanticHighlightingCalculator extends DefaultSemanticHighli
38 @Inject 38 @Inject
39 private ProblemDesugarer desugarer; 39 private ProblemDesugarer desugarer;
40 40
41 @Inject
42 private TypeHashProvider typeHashProvider;
43
41 @Override 44 @Override
42 protected boolean highlightElement(EObject object, IHighlightedPositionAcceptor acceptor, 45 protected boolean highlightElement(EObject object, IHighlightedPositionAcceptor acceptor,
43 CancelIndicator cancelIndicator) { 46 CancelIndicator cancelIndicator) {
@@ -127,6 +130,12 @@ public class ProblemSemanticHighlightingCalculator extends DefaultSemanticHighli
127 classesBuilder.add(NEW_NODE_CLASS); 130 classesBuilder.add(NEW_NODE_CLASS);
128 } 131 }
129 } 132 }
133 if (eObject instanceof Relation relation) {
134 var typeHash = typeHashProvider.getTypeHash(relation);
135 if (typeHash != null) {
136 classesBuilder.add("typeHash-" + typeHash);
137 }
138 }
130 List<String> classes = classesBuilder.build(); 139 List<String> classes = classesBuilder.build();
131 return classes.toArray(new String[0]); 140 return classes.toArray(new String[0]);
132 } 141 }