aboutsummaryrefslogtreecommitdiffstats
path: root/language-model/src/main
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-11-04 17:41:52 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-11-04 17:41:52 +0100
commit432ff3aaee8d45025f309436db541d0ec1b76485 (patch)
tree0d49c583f71f9972c6f5050540ac50e78992eaf2 /language-model/src/main
parentfix(web): fix autocomplete prefix behavior (diff)
downloadrefinery-432ff3aaee8d45025f309436db541d0ec1b76485.tar.gz
refinery-432ff3aaee8d45025f309436db541d0ec1b76485.tar.zst
refinery-432ff3aaee8d45025f309436db541d0ec1b76485.zip
fix(language): hide current implicit proposal
Content assist proposals should not display the object that is only added to the model because the current context assist input refers to it (e.g., an implicit node or variable that is only referenced in the currently edited context).
Diffstat (limited to 'language-model/src/main')
-rw-r--r--language-model/src/main/java/tools/refinery/language/model/ProblemUtil.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/language-model/src/main/java/tools/refinery/language/model/ProblemUtil.java b/language-model/src/main/java/tools/refinery/language/model/ProblemUtil.java
index b6b199f8..5f8641bf 100644
--- a/language-model/src/main/java/tools/refinery/language/model/ProblemUtil.java
+++ b/language-model/src/main/java/tools/refinery/language/model/ProblemUtil.java
@@ -12,6 +12,7 @@ import org.eclipse.emf.ecore.EObject;
12import org.eclipse.emf.ecore.resource.Resource; 12import org.eclipse.emf.ecore.resource.Resource;
13 13
14import tools.refinery.language.model.problem.ClassDeclaration; 14import tools.refinery.language.model.problem.ClassDeclaration;
15import tools.refinery.language.model.problem.ImplicitVariable;
15import tools.refinery.language.model.problem.Node; 16import tools.refinery.language.model.problem.Node;
16import tools.refinery.language.model.problem.Problem; 17import tools.refinery.language.model.problem.Problem;
17import tools.refinery.language.model.problem.ProblemPackage; 18import tools.refinery.language.model.problem.ProblemPackage;
@@ -33,6 +34,24 @@ public final class ProblemUtil {
33 public static boolean isSingletonVariable(Variable variable) { 34 public static boolean isSingletonVariable(Variable variable) {
34 return variable.eContainingFeature() == ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE; 35 return variable.eContainingFeature() == ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE;
35 } 36 }
37
38 public static boolean isImplicitVariable(Variable variable) {
39 return variable instanceof ImplicitVariable;
40 }
41
42 public static boolean isImplicitNode(Node node) {
43 return node.eContainingFeature() == ProblemPackage.Literals.PROBLEM__NODES;
44 }
45
46 public static boolean isImplicit(EObject eObject) {
47 if (eObject instanceof Node node) {
48 return isImplicitNode(node);
49 } else if (eObject instanceof Variable variable) {
50 return isImplicitVariable(variable);
51 } else {
52 return false;
53 }
54 }
36 55
37 public static boolean isUniqueNode(Node node) { 56 public static boolean isUniqueNode(Node node) {
38 var containingFeature = node.eContainingFeature(); 57 var containingFeature = node.eContainingFeature();