This is an automated email from the ASF dual-hosted git repository.

dbalek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 11e5f1e669 LSP: Micronaut endpoints finder fixes.
     new 0191888714 Merge pull request #6380 from dbalek/dbalek/mn-symbols-fixes
11e5f1e669 is described below

commit 11e5f1e66976b245284983d14822991b59e3a6cd
Author: Dusan Balek <[email protected]>
AuthorDate: Mon Aug 28 12:56:23 2023 +0200

    LSP: Micronaut endpoints finder fixes.
---
 .../micronaut/symbol/MicronautSymbolFinder.java    | 40 +++++++++++++++-------
 .../java/lsp/server/explorer/ProjectViewTest.java  |  1 -
 .../server/progress/TestProgressHandlerTest.java   |  5 ---
 3 files changed, 28 insertions(+), 18 deletions(-)

diff --git 
a/enterprise/micronaut/src/org/netbeans/modules/micronaut/symbol/MicronautSymbolFinder.java
 
b/enterprise/micronaut/src/org/netbeans/modules/micronaut/symbol/MicronautSymbolFinder.java
index 8ab6e60998..dc523e6056 100644
--- 
a/enterprise/micronaut/src/org/netbeans/modules/micronaut/symbol/MicronautSymbolFinder.java
+++ 
b/enterprise/micronaut/src/org/netbeans/modules/micronaut/symbol/MicronautSymbolFinder.java
@@ -135,6 +135,7 @@ public final class MicronautSymbolFinder extends 
EmbeddingIndexer implements Pro
                     if (metaAnnotated != null) {
                         Element annEl = 
metaAnnotated.first().getAnnotationType().asElement();
                         if 
("io.micronaut.http.annotation.Controller".contentEquals(((TypeElement) 
annEl).getQualifiedName())) {
+                            path = "";
                             for (Map.Entry<? extends ExecutableElement, ? 
extends AnnotationValue> entry : 
metaAnnotated.first().getElementValues().entrySet()) {
                                 if 
("value".contentEquals(entry.getKey().getSimpleName())) {
                                     path = (String) 
entry.getValue().getValue();
@@ -153,19 +154,34 @@ public final class MicronautSymbolFinder extends 
EmbeddingIndexer implements Pro
 
             @Override
             public Void visitMethod(MethodTree node, String path) {
-                TreePath treePath = this.getCurrentPath();
-                MthIterator it = new 
MthIterator(cc.getTrees().getElement(treePath), cc.getElements(), 
cc.getTypes());
-                while (it.hasNext()) {
-                    for (AnnotationMirror ann : 
it.next().getAnnotationMirrors()) {
-                        String method = getEndpointMethod((TypeElement) 
ann.getAnnotationType().asElement());
-                        if (method != null) {
-                            for (Map.Entry<? extends ExecutableElement, ? 
extends AnnotationValue> entry : ann.getElementValues().entrySet()) {
-                                if 
("value".contentEquals(entry.getKey().getSimpleName()) || 
"uri".contentEquals(entry.getKey().getSimpleName())) {
-                                    String name = '@' + (path != null ? path : 
"") + entry.getValue().getValue() + " -- " + method;
+                if (path != null) {
+                    TreePath treePath = this.getCurrentPath();
+                    MthIterator it = new 
MthIterator(cc.getTrees().getElement(treePath), cc.getElements(), 
cc.getTypes());
+                    while (it.hasNext()) {
+                        for (AnnotationMirror ann : 
it.next().getAnnotationMirrors()) {
+                            String method = getEndpointMethod((TypeElement) 
ann.getAnnotationType().asElement());
+                            if (method != null) {
+                                List<String> ids = new ArrayList<>();
+                                Map<? extends ExecutableElement, ? extends 
AnnotationValue> values = ann.getElementValues();
+                                if (values.isEmpty()) {
+                                    ids.add("/");
+                                } else {
+                                    for (Map.Entry<? extends 
ExecutableElement, ? extends AnnotationValue> entry : values.entrySet()) {
+                                        if 
("value".contentEquals(entry.getKey().getSimpleName()) || 
"uri".contentEquals(entry.getKey().getSimpleName())) {
+                                            ids.add((String) 
entry.getValue().getValue());
+                                        } else if 
("uris".contentEquals(entry.getKey().getSimpleName())) {
+                                            for (AnnotationValue av : 
(List<AnnotationValue>) entry.getValue().getValue()) {
+                                                ids.add((String) 
av.getValue());
+                                            }
+                                        }
+                                    }
+                                }
+                                for (Object id : ids) {
+                                    String name = '@' + path + id + " -- " + 
method;
                                     int[] span = 
cc.getTreeUtilities().findNameSpan(node);
                                     ret.add(new SymbolLocation(name, (int) 
sp.getStartPosition(treePath.getCompilationUnit(), node), (int) 
sp.getEndPosition(treePath.getCompilationUnit(), node), span[0], span[1]));
-                                    return null;
                                 }
+                                return null;
                             }
                         }
                     }
@@ -193,9 +209,9 @@ public final class MicronautSymbolFinder extends 
EmbeddingIndexer implements Pro
                     pw.print("symbol: ");
                     pw.print(symbol.name);
                     pw.print(':'); //NOI18N
-                    pw.print(symbol.start);
+                    pw.print(symbol.selectionStart);
                     pw.print('-'); //NOI18N
-                    pw.println(symbol.end);
+                    pw.println(symbol.selectionEnd);
                 }
             } catch (IOException ex) {
                 Exceptions.printStackTrace(ex);
diff --git 
a/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
 
b/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
index 30397fcc4f..9c1d2aac8f 100644
--- 
a/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
+++ 
b/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
@@ -152,7 +152,6 @@ public class ProjectViewTest extends NbTestCase {
         
         @Override
         public void telemetryEvent(Object arg0) {
-            throw new UnsupportedOperationException("Not supported yet.");
         }
 
         @Override
diff --git 
a/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandlerTest.java
 
b/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandlerTest.java
index 03ae5c11e0..00b12fca07 100644
--- 
a/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandlerTest.java
+++ 
b/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandlerTest.java
@@ -147,11 +147,6 @@ public class TestProgressHandlerTest extends NbTestCase {
             this.messages = messages;
         }
 
-        @Override
-        public void telemetryEvent(Object object) {
-            fail();
-        }
-
         @Override
         public void publishDiagnostics(PublishDiagnosticsParams diagnostics) {
             fail();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to