diff --git a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java index f426f8b7ce8..48ca5345757 100644 --- a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java +++ b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java @@ -371,9 +371,11 @@ public void run() { } fFilterOffset= offset; - if (proposals != null && !proposals.isEmpty()) + if (proposals != null && !proposals.isEmpty()) { setProposals(proposals, fIsFilteredSubset); - else { + } else if (fContentAssistant.isShowEmptyList() && !shouldHideOnNoProposals(event, offset)) { + setProposals(Collections.emptyList(), false); + } else { hide(); if (fContentAssistant.isAutoActivation() && offset > 0 && event != null) { try { @@ -2026,4 +2028,13 @@ public void setSorter(ICompletionProposalSorter sorter) { void sortProposals(final List proposals) { proposals.sort(fSorter::compare); } + + private static boolean shouldHideOnNoProposals(DocumentEvent event, int offset) { + try { + char c= event.getDocument().getChar(offset - 1); + return c == ' '; + } catch (BadLocationException e) { + return true; + } + } }