sdedic commented on code in PR #7149:
URL: https://github.com/apache/netbeans/pull/7149#discussion_r1522688475
##########
java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionCollector.java:
##########
@@ -689,32 +689,63 @@ public Completion createStaticMemberItem(CompilationInfo
info, DeclaredType type
});
String label = type.asElement().getSimpleName() + "." +
memberElem.getSimpleName();
String sortText = memberElem.getSimpleName().toString();
+ String memberTypeName;
+ StringBuilder labelDetail = new StringBuilder();
+ StringBuilder insertText = new StringBuilder(label);
+ boolean asTemplate = false;
if (memberElem.getKind().isField()) {
+ memberTypeName = Utilities.getTypeName(info, memberType,
false).toString();
sortText += String.format("#%s", Utilities.getTypeName(info,
type, false)); //NOI18N
} else {
+ memberTypeName = Utilities.getTypeName(info, ((ExecutableType)
memberType).getReturnType(), false).toString();
Review Comment:
Nitpick: maybe guard that memberType.getKind() is a
method/constructor/executable.
##########
java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionCollector.java:
##########
@@ -689,32 +689,63 @@ public Completion createStaticMemberItem(CompilationInfo
info, DeclaredType type
});
String label = type.asElement().getSimpleName() + "." +
memberElem.getSimpleName();
String sortText = memberElem.getSimpleName().toString();
+ String memberTypeName;
+ StringBuilder labelDetail = new StringBuilder();
+ StringBuilder insertText = new StringBuilder(label);
+ boolean asTemplate = false;
if (memberElem.getKind().isField()) {
+ memberTypeName = Utilities.getTypeName(info, memberType,
false).toString();
sortText += String.format("#%s", Utilities.getTypeName(info,
type, false)); //NOI18N
} else {
+ memberTypeName = Utilities.getTypeName(info, ((ExecutableType)
memberType).getReturnType(), false).toString();
StringBuilder sortParams = new StringBuilder();
+ labelDetail.append('(');
+ CodeStyle cs = null;
+ try {
+ cs = CodeStyle.getDefault(info.getDocument());
+ } catch (IOException ex) {
+ }
+ if (cs == null) {
+ cs = CodeStyle.getDefault(info.getFileObject());
+ }
sortParams.append('(');
+ insertText.append(cs.spaceBeforeMethodCallParen() ? " (" :
"(");
int cnt = 0;
- Iterator<? extends TypeMirror> tIt =
((ExecutableType)memberType).getParameterTypes().iterator();
- while(tIt.hasNext()) {
+ Iterator<? extends VariableElement> it = ((ExecutableElement)
memberElem).getParameters().iterator();
+ Iterator<? extends TypeMirror> tIt = ((ExecutableType)
memberType).getParameterTypes().iterator();
+ while (it.hasNext() && tIt.hasNext()) {
TypeMirror tm = tIt.next();
if (tm == null) {
break;
}
- sortParams.append(Utilities.getTypeName(info, tm, false,
((ExecutableElement)memberElem).isVarArgs() && !tIt.hasNext()).toString());
+ String paramTypeName = Utilities.getTypeName(info, tm,
false, ((ExecutableElement) memberElem).isVarArgs() &&
!tIt.hasNext()).toString();
+ String paramName = it.next().getSimpleName().toString();
+ labelDetail.append(paramTypeName).append('
').append(paramName);
+ sortParams.append(paramTypeName);
+ VariableElement inst = instanceOf(tm, paramName);
+
insertText.append("${").append(cnt).append(":").append(inst != null ?
inst.getSimpleName() : paramName).append("}");
+ asTemplate = true;
if (tIt.hasNext()) {
+ labelDetail.append(", ");
sortParams.append(',');
+ insertText.append(", ");
Review Comment:
`cs.spaceAfterComma()` ? There are a lot of space* :(
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
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