Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Ridge2017-01-13 04:04:43 +0000
committerNathan Ridge2017-01-23 01:21:39 +0000
commit8956d2c7e6e1227083f39df6f9121db9cdd92bff (patch)
tree9defa67c97131ae506d91c2f5e0a4275f31b0af1 /core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist
parentd45ff124e3912dd2734856c91f5c88c3eb6b9f9f (diff)
downloadorg.eclipse.cdt-8956d2c7e6e1227083f39df6f9121db9cdd92bff.tar.gz
org.eclipse.cdt-8956d2c7e6e1227083f39df6f9121db9cdd92bff.tar.xz
org.eclipse.cdt-8956d2c7e6e1227083f39df6f9121db9cdd92bff.zip
Bug 72809 - Improve content assist inside inactive code
Diffstat (limited to 'core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist')
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java6
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/HelpCompletionProposalComputer.java8
2 files changed, 11 insertions, 3 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
index 152814a9621..bdf4c766438 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
@@ -97,6 +97,7 @@ import org.eclipse.cdt.ui.text.ICPartitions;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.ASTQueries;
+import org.eclipse.cdt.internal.core.dom.parser.IASTInactiveCompletionName;
import org.eclipse.cdt.internal.core.dom.parser.c.CBuiltinParameter;
import org.eclipse.cdt.internal.core.dom.parser.c.CBuiltinVariable;
import org.eclipse.cdt.internal.core.dom.parser.c.CImplicitFunction;
@@ -162,8 +163,11 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
IASTName[] names = completionNode.getNames();
for (IASTName name : names) {
- if (name.getTranslationUnit() == null) {
+ if (name.getTranslationUnit() == null && !(name instanceof IASTInactiveCompletionName)) {
// The node isn't properly hooked up, must have backtracked out of this node.
+ // Inactive completion names are special in that they are not hooked up
+ // (because there is no AST for the inactive code), but we still want to
+ // attempt completion for them.
continue;
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/HelpCompletionProposalComputer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/HelpCompletionProposalComputer.java
index 4be7afc935c..cc1e7f4bd21 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/HelpCompletionProposalComputer.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/HelpCompletionProposalComputer.java
@@ -29,6 +29,8 @@ import org.eclipse.cdt.ui.IFunctionSummary;
import org.eclipse.cdt.ui.text.ICHelpInvocationContext;
import org.eclipse.cdt.ui.text.IContentAssistHelpInvocationContext;
+import org.eclipse.cdt.internal.core.dom.parser.IASTInactiveCompletionName;
+
import org.eclipse.cdt.internal.ui.CHelpProviderManager;
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
@@ -46,8 +48,10 @@ public class HelpCompletionProposalComputer extends ParsingBasedProposalComputer
for (int i = 0; i < names.length; ++i) {
IASTName name = names[i];
- // ignore if not connected
- if (name.getTranslationUnit() == null)
+ // Ignore if not connected.
+ // See the corresponding code in DOMCompletionProposalComputer for why
+ // inactive completion names are special.
+ if (name.getTranslationUnit() == null && !(name instanceof IASTInactiveCompletionName))
continue;
// ignore if this is a member access

Back to the top