From 3c80a177e44f9924952496eeb79d87b7ea955a9d Mon Sep 17 00:00:00 2001 From: Mickael Istria Date: Mon, 17 Sep 2018 23:54:37 +0200 Subject: Bug 539165 - API for ContentAssistant to ignore completion trigger chars Change-Id: If8741d6564ab5b13940b0b656f169d1b77df3812 Signed-off-by: Mickael Istria --- org.eclipse.jface.text/META-INF/MANIFEST.MF | 2 +- org.eclipse.jface.text/pom.xml | 2 +- .../contentassist/CompletionProposalPopup.java | 20 +++++++++-------- .../jface/text/contentassist/ContentAssistant.java | 26 ++++++++++++++++++++++ 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/org.eclipse.jface.text/META-INF/MANIFEST.MF b/org.eclipse.jface.text/META-INF/MANIFEST.MF index 0ea8ae6a71a..2a8c18e6b51 100644 --- a/org.eclipse.jface.text/META-INF/MANIFEST.MF +++ b/org.eclipse.jface.text/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jface.text -Bundle-Version: 3.14.100.qualifier +Bundle-Version: 3.15.0.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Export-Package: diff --git a/org.eclipse.jface.text/pom.xml b/org.eclipse.jface.text/pom.xml index 371154fd016..c053cc33108 100644 --- a/org.eclipse.jface.text/pom.xml +++ b/org.eclipse.jface.text/pom.xml @@ -18,6 +18,6 @@ org.eclipse.jface org.eclipse.jface.text - 3.14.100-SNAPSHOT + 3.15.0-SNAPSHOT eclipse-plugin diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java index 55009fe0bb4..7d077f2bb07 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java @@ -1369,16 +1369,18 @@ class CompletionProposalPopup implements IContentAssistListener { return false; default: - ICompletionProposal p= getSelectedProposal(); - if (p instanceof ICompletionProposalExtension) { - ICompletionProposalExtension t= (ICompletionProposalExtension) p; - char[] triggers= t.getTriggerCharacters(); - if (contains(triggers, key)) { - e.doit= false; - hide(); - insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x); + if (fContentAssistant.isCompletionProposalTriggerCharsEnabled()) { + ICompletionProposal p= getSelectedProposal(); + if (p instanceof ICompletionProposalExtension) { + ICompletionProposalExtension t= (ICompletionProposalExtension) p; + char[] triggers= t.getTriggerCharacters(); + if (contains(triggers, key)) { + e.doit= false; + hide(); + insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x); + } } - } + } } return true; 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 bfe38f3784a..7c614d561d2 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 @@ -1055,6 +1055,8 @@ public class ContentAssistant implements IContentAssistant, IContentAssistantExt */ private boolean fAsynchronous; + private boolean fCompletionProposalTriggerCharsEnabled= true; + /** * Creates a new content assistant. The content assistant is not automatically activated, * overlays the completion proposals with context information list if necessary, and shows the @@ -2757,4 +2759,28 @@ public class ContentAssistant implements IContentAssistant, IContentAssistantExt fProposalPopup.setSorter(fSorter); } } + + /** + * Returns whether completion trigger char are enabled. If false, completion proposal trigger + * chars are ignored and only Enter key can be used to select a proposal. + * + * @return whether completion trigger char are enabled. + * @see ICompletionProposalExtension#getTriggerCharacters() + * @since 3.15 + */ + public boolean isCompletionProposalTriggerCharsEnabled() { + return fCompletionProposalTriggerCharsEnabled; + } + + /** + * Set whether completion trigger chars are enabled. If set to false, completion proposal + * trigger chars are ignored and only Enter key can be used to select a proposal. + * + * @param enable whether current content assistant should consider completion trigger chars. + * @see ICompletionProposalExtension#getTriggerCharacters() + * @since 3.15 + */ + public void enableCompletionProposalTriggerChars(boolean enable) { + fCompletionProposalTriggerCharsEnabled= enable; + } } -- cgit v1.2.3