aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-10-31 18:57:56 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-10-31 19:26:16 +0100
commitd36affa468c0f874485d8d8aa55b34c8c30e9f14 (patch)
tree6390fcccae7d4d863d4ff8e8a4a8b06c3274fc40
parentfix(web): fix push message race condition (diff)
downloadrefinery-d36affa468c0f874485d8d8aa55b34c8c30e9f14.tar.gz
refinery-d36affa468c0f874485d8d8aa55b34c8c30e9f14.tar.zst
refinery-d36affa468c0f874485d8d8aa55b34c8c30e9f14.zip
fix(web): not dot display spurious occurrences
Only return find occurrences results for NamedElement instances, as other objects cannot be referenced by name and thus cannot have any references at all.
-rw-r--r--language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java6
-rw-r--r--language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java16
2 files changed, 22 insertions, 0 deletions
diff --git a/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java b/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java
index ac8934ed..ec55036f 100644
--- a/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java
+++ b/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java
@@ -6,7 +6,9 @@ package tools.refinery.language.web;
6import org.eclipse.xtext.web.server.XtextServiceDispatcher; 6import org.eclipse.xtext.web.server.XtextServiceDispatcher;
7import org.eclipse.xtext.web.server.model.IWebDocumentProvider; 7import org.eclipse.xtext.web.server.model.IWebDocumentProvider;
8import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; 8import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess;
9import org.eclipse.xtext.web.server.occurrences.OccurrencesService;
9 10
11import tools.refinery.language.web.occurrences.ProblemOccurrencesService;
10import tools.refinery.language.web.xtext.server.push.PushServiceDispatcher; 12import tools.refinery.language.web.xtext.server.push.PushServiceDispatcher;
11import tools.refinery.language.web.xtext.server.push.PushWebDocumentAccess; 13import tools.refinery.language.web.xtext.server.push.PushWebDocumentAccess;
12import tools.refinery.language.web.xtext.server.push.PushWebDocumentProvider; 14import tools.refinery.language.web.xtext.server.push.PushWebDocumentProvider;
@@ -26,4 +28,8 @@ public class ProblemWebModule extends AbstractProblemWebModule {
26 public Class<? extends XtextServiceDispatcher> bindXtextServiceDispatcher() { 28 public Class<? extends XtextServiceDispatcher> bindXtextServiceDispatcher() {
27 return PushServiceDispatcher.class; 29 return PushServiceDispatcher.class;
28 } 30 }
31
32 public Class<? extends OccurrencesService> bindOccurrencesService() {
33 return ProblemOccurrencesService.class;
34 }
29} 35}
diff --git a/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java b/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java
new file mode 100644
index 00000000..d32bbb54
--- /dev/null
+++ b/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java
@@ -0,0 +1,16 @@
1package tools.refinery.language.web.occurrences;
2
3import org.eclipse.emf.ecore.EObject;
4import org.eclipse.xtext.web.server.occurrences.OccurrencesService;
5
6import com.google.inject.Singleton;
7
8import tools.refinery.language.model.problem.NamedElement;
9
10@Singleton
11public class ProblemOccurrencesService extends OccurrencesService {
12 @Override
13 protected boolean filter(EObject element) {
14 return super.filter(element) && element instanceof NamedElement;
15 }
16}