Skip to content

Commit f8b6db6

Browse files
Display the package name in the label property when suggesting types in DEBUG CONSOLE (#505)
1 parent 0e03327 commit f8b6db6

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

com.microsoft.java.debug.plugin/src/main/java/com/microsoft/java/debug/plugin/internal/CompletionProposalRequestor.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.eclipse.jdt.core.CompletionContext;
2929
import org.eclipse.jdt.core.CompletionProposal;
3030
import org.eclipse.jdt.core.CompletionRequestor;
31+
import org.eclipse.jdt.core.Flags;
3132
import org.eclipse.jdt.core.IClassFile;
3233
import org.eclipse.jdt.core.IClasspathEntry;
3334
import org.eclipse.jdt.core.IJavaElement;
@@ -154,7 +155,7 @@ public List<CompletionItem> getCompletionItems() {
154155
*/
155156
public CompletionItem toCompletionItem(CompletionProposal proposal, int index) {
156157
final CompletionItem $ = new CompletionItem();
157-
$.setKind(mapKind(proposal.getKind()));
158+
$.setKind(mapKind(proposal.getKind(), proposal.getFlags()));
158159
Map<String, String> data = new HashMap<>();
159160
data.put(CompletionResolveHandler.DATA_FIELD_REQUEST_ID, String.valueOf(response.getId()));
160161
data.put(CompletionResolveHandler.DATA_FIELD_PROPOSAL_ID, String.valueOf(index));
@@ -168,7 +169,15 @@ public CompletionItem toCompletionItem(CompletionProposal proposal, int index) {
168169
}
169170

170171
private void adjustCompleteItem(CompletionItem item) {
171-
if (item.getKind() == CompletionItemKind.Function) {
172+
CompletionItemKind itemKind = item.getKind();
173+
if (itemKind == CompletionItemKind.Class || itemKind == CompletionItemKind.Interface
174+
|| itemKind == CompletionItemKind.Enum) {
175+
// Display the package name in the label property.
176+
CompletionItemLabelDetails labelDetails = item.getLabelDetails();
177+
if (labelDetails != null && StringUtils.isNotBlank(labelDetails.getDescription())) {
178+
item.setLabel(item.getLabel() + " - " + labelDetails.getDescription());
179+
}
180+
} else if (itemKind == CompletionItemKind.Function) {
172181
// Merge the label details into the label property
173182
// because the completion provider in DEBUG CONSOLE
174183
// doesn't support the label details.
@@ -195,7 +204,7 @@ public void acceptContext(CompletionContext context) {
195204
this.descriptionProvider = new CompletionProposalDescriptionProvider(context);
196205
}
197206

198-
private CompletionItemKind mapKind(final int kind) {
207+
private CompletionItemKind mapKind(final int kind, final int flags) {
199208
// When a new CompletionItemKind is added, don't forget to update
200209
// SUPPORTED_KINDS
201210
switch (kind) {
@@ -204,6 +213,11 @@ private CompletionItemKind mapKind(final int kind) {
204213
return CompletionItemKind.Constructor;
205214
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
206215
case CompletionProposal.TYPE_REF:
216+
if (Flags.isInterface(flags)) {
217+
return CompletionItemKind.Interface;
218+
} else if (Flags.isEnum(flags)) {
219+
return CompletionItemKind.Enum;
220+
}
207221
return CompletionItemKind.Class;
208222
case CompletionProposal.FIELD_IMPORT:
209223
case CompletionProposal.METHOD_IMPORT:
@@ -213,6 +227,9 @@ private CompletionItemKind mapKind(final int kind) {
213227
return CompletionItemKind.Module;
214228
case CompletionProposal.FIELD_REF:
215229
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
230+
if (Flags.isStatic(flags) && Flags.isFinal(flags)) {
231+
return CompletionItemKind.Constant;
232+
}
216233
return CompletionItemKind.Field;
217234
case CompletionProposal.KEYWORD:
218235
return CompletionItemKind.Keyword;

0 commit comments

Comments
 (0)