diff options
3 files changed, 15 insertions, 5 deletions
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java index d2cae78bbff..071375c2f42 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/AsyncCompletionProposalPopup.java @@ -269,9 +269,13 @@ class AsyncCompletionProposalPopup extends CompletionProposalPopup { } List<CompletableFuture<List<ICompletionProposal>>> futures = new ArrayList<>(processors.size()); for (IContentAssistProcessor processor : processors) { - futures.add(CompletableFuture.supplyAsync(() -> - Arrays.asList(processor.computeCompletionProposals(fViewer, invocationOffset)) - )); + futures.add(CompletableFuture.supplyAsync(() -> { + ICompletionProposal[] proposals= processor.computeCompletionProposals(fViewer, invocationOffset); + if (proposals == null) { + return Collections.emptyList(); + } + return Arrays.asList(proposals); + })); } return futures; } diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/ContentAssistant.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/ContentAssistant.java index b03712c295b..bd12c8e719e 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/ContentAssistant.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/ContentAssistant.java @@ -2013,7 +2013,10 @@ public class ContentAssistant implements IContentAssistant, IContentAssistantExt @Override public void run() throws Exception { processors.forEach(p -> { - res.addAll(Arrays.asList(p.computeCompletionProposals(viewer, offset))); + ICompletionProposal[] proposals= p.computeCompletionProposals(viewer, offset); + if (proposals != null) { + res.addAll(Arrays.asList(proposals)); + } fLastErrorMessage= p.getErrorMessage(); }); } diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/CompositeContentAssistProcessor.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/CompositeContentAssistProcessor.java index f3c9a977551..06ca42db162 100644 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/CompositeContentAssistProcessor.java +++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/CompositeContentAssistProcessor.java @@ -46,7 +46,10 @@ public class CompositeContentAssistProcessor implements IContentAssistProcessor public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) { List<ICompletionProposal> res = new ArrayList<>(); for (IContentAssistProcessor processor : this.fContentAssistProcessors) { - res.addAll(Arrays.asList(processor.computeCompletionProposals(viewer, offset))); + ICompletionProposal[] proposals = processor.computeCompletionProposals(viewer, offset); + if (proposals != null) { + res.addAll(Arrays.asList(proposals)); + } } return res.toArray(new ICompletionProposal[res.size()]); } |