From 7bd2f84e6a1285d534906ed8cdf7fc1ef7222d23 Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Tue, 25 Mar 2008 13:24:55 +0000 Subject: [PATCH] Allow only exact word matches for context information --- .../DOMCompletionProposalComputer.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 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 d3f077541dc..d6157979ec9 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 @@ -186,17 +186,22 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer private void addMacroProposals(CContentAssistInvocationContext context, String prefix, List proposals) { char[] prefixChars= prefix.toCharArray(); + final boolean matchPrefix= !context.isContextInformationStyle(); IASTCompletionNode completionNode = context.getCompletionNode(); IASTPreprocessorMacroDefinition[] macros = completionNode.getTranslationUnit().getMacroDefinitions(); if (macros != null) - for (int i = 0; i < macros.length; ++i) - if (CharArrayUtils.equals(macros[i].getName().toCharArray(), 0, prefixChars.length, prefixChars, true)) + for (int i = 0; i < macros.length; ++i) { + final char[] macroName= macros[i].getName().toCharArray(); + if (CharArrayUtils.equals(macroName, 0, matchPrefix ? prefixChars.length : macroName.length, prefixChars, true)) handleMacro(macros[i], context, prefix, proposals); + } macros = completionNode.getTranslationUnit().getBuiltinMacroDefinitions(); if (macros != null) - for (int i = 0; i < macros.length; ++i) - if (CharArrayUtils.equals(macros[i].getName().toCharArray(), 0, prefixChars.length, prefixChars, true)) + for (int i = 0; i < macros.length; ++i) { + final char[] macroName= macros[i].getName().toCharArray(); + if (CharArrayUtils.equals(macroName, 0, matchPrefix ? prefixChars.length : macroName.length, prefixChars, true)) handleMacro(macros[i], context, prefix, proposals); + } } private void handleMacro(IASTPreprocessorMacroDefinition macro, CContentAssistInvocationContext context, String prefix, List proposals) {