From 27e08f955b7bcf3ffdbf8206e05d924ea1feb748 Mon Sep 17 00:00:00 2001 From: aboyko Date: Mon, 6 Feb 2023 17:08:18 -0500 Subject: [PATCH] CP event affects codeminings on editors of resources from source dirs --- .../commons/STS4LanguageClientImpl.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java index 5d442e2c2..035fa0dc2 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java @@ -27,9 +27,11 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; +import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.ILocalVariable; +import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer; import org.eclipse.jdt.internal.ui.viewsupport.JavaElementLinks; import org.eclipse.jdt.ui.JavaElementLabelProvider; @@ -421,9 +423,19 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La if (editor.getEditorInput() instanceof IFileEditorInput) { IFile file = ((IFileEditorInput)editor.getEditorInput()).getFile(); if (file != null && projects.contains(file.getProject())) { - ITextViewer viewer = editor.getAdapter(ITextViewer.class); - if (viewer instanceof ISourceViewerExtension5) { - ((ISourceViewerExtension5)viewer).updateCodeMinings(); + IJavaProject javaProject = JavaCore.create(file.getProject()); + if (javaProject != null) { + for (IClasspathEntry entry : javaProject.getRawClasspath()) { + if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { + if (entry.getPath().isPrefixOf(file.getFullPath())) { + ITextViewer viewer = editor.getAdapter(ITextViewer.class); + if (viewer instanceof ISourceViewerExtension5) { + ((ISourceViewerExtension5)viewer).updateCodeMinings(); + break; + } + } + } + } } } }