aboutsummaryrefslogtreecommitdiffstats
path: root/language-web
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 /language-web
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.
Diffstat (limited to 'language-web')
-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}