Skip to content

Commit

Permalink
Expose proposals for 3rd-party extensions
Browse files Browse the repository at this point in the history
Signed-off-by: Yan Zhang <[email protected]>
  • Loading branch information
Eskibear committed Feb 6, 2020
1 parent 46be474 commit 749f450
Showing 1 changed file with 8 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public final class CompletionProposalRequestor extends CompletionRequestor {
private CompletionContext context;
private boolean isComplete = true;
private PreferenceManager preferenceManager;
private CompletionProposalReplacementProvider proposalProvider;

static class ProposalComparator implements Comparator<CompletionProposal> {

Expand Down Expand Up @@ -141,6 +142,7 @@ public CompletionProposalRequestor(ICompilationUnit aUnit, int offset, Preferenc
response.setOffset(offset);
fIsTestCodeExcluded = !isTestSource(unit.getJavaProject(), unit);
setRequireExtendedContext(true);
proposalProvider = new CompletionProposalReplacementProvider(unit, context, offset, preferenceManager.getClientPreferences());
}

private boolean isTestSource(IJavaProject project, ICompilationUnit cu) {
Expand Down Expand Up @@ -199,12 +201,10 @@ public List<CompletionItem> getCompletionItems() {
CompletionResponses.store(response);

//Let's compute replacement texts for the most relevant results only
CompletionProposalReplacementProvider proposalProvider = new CompletionProposalReplacementProvider(unit, getContext(), response.getOffset(), preferenceManager.getClientPreferences());
for (int i = 0; i < limit; i++) {
CompletionProposal proposal = proposals.get(i);
try {
CompletionItem item = toCompletionItem(proposal, i);
proposalProvider.updateReplacement(proposal, item, '\0');
completionItems.add(item);
} catch (Exception e) {
JavaLanguageServerPlugin.logException(e.getMessage(), e);
Expand Down Expand Up @@ -266,6 +266,7 @@ public CompletionItem toCompletionItem(CompletionProposal proposal, int index) {
JavaLanguageServerPlugin.log(e);
}
}
proposalProvider.updateReplacement(proposal, $, '\0');
return $;
}

Expand Down Expand Up @@ -381,6 +382,10 @@ public CompletionContext getContext() {
return context;
}

public List<CompletionProposal> getProposals() {
return proposals;
}

/**
* copied from
* org.eclipse.jdt.ui.text.java.CompletionProposalCollector.isFiltered(CompletionProposal)
Expand Down Expand Up @@ -452,4 +457,4 @@ protected final char[] getDeclaringType(CompletionProposal proposal) {
}
}

}
}

0 comments on commit 749f450

Please sign in to comment.