From 57c9a71b6004b9fc0ed6cc3c87f4d62141fc6d62 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Mon, 6 Nov 2023 01:04:02 +0100 Subject: refactor(language): opposite content assist Only show references that may plausibly appear in an opposite declaration. --- .../refinery/language/scoping/ProblemScopeProvider.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'subprojects/language') diff --git a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java index cf099aba..a4437ba6 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java +++ b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java @@ -44,7 +44,7 @@ public class ProblemScopeProvider extends AbstractProblemScopeProvider { return getVariableScope(context, scope); } if (reference == ProblemPackage.Literals.REFERENCE_DECLARATION__OPPOSITE) { - return getOppositeScope(context, scope); + return getOppositeScope(context); } return scope; } @@ -96,16 +96,19 @@ public class ProblemScopeProvider extends AbstractProblemScopeProvider { } } - protected IScope getOppositeScope(EObject context, IScope delegateScope) { + protected IScope getOppositeScope(EObject context) { var referenceDeclaration = EcoreUtil2.getContainerOfType(context, ReferenceDeclaration.class); if (referenceDeclaration == null) { - return delegateScope; + return IScope.NULLSCOPE; } var relation = referenceDeclaration.getReferenceType(); if (!(relation instanceof ClassDeclaration classDeclaration)) { - return delegateScope; + return IScope.NULLSCOPE; } - var referenceDeclarations = desugarer.getAllReferenceDeclarations(classDeclaration); - return Scopes.scopeFor(referenceDeclarations, delegateScope); + var referenceDeclarations = classDeclaration.getFeatureDeclarations() + .stream() + .filter(ReferenceDeclaration.class::isInstance) + .toList(); + return Scopes.scopeFor(referenceDeclarations); } } -- cgit v1.2.3-54-g00ecf