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