From 8ee1c659465f8500c552dfaa84b84225439b632a Mon Sep 17 00:00:00 2001 From: Hoda Amer Date: Fri, 23 Apr 2004 15:32:46 +0000 Subject: [PATCH] Content Assist fixes --- core/org.eclipse.cdt.ui/ChangeLog | 4 ++++ .../refactoring/rename/RenameElementProcessor.java | 12 +++++++++++- .../ui/text/contentassist/CCompletionProcessor.java | 4 ---- .../ui/text/contentassist/CompletionEngine.java | 13 +++++++------ 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 4095d9efe2d..427fe832bb2 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,7 @@ +2004-04-23 Hoda Amer + Fix for bug#59631 : Macros do not appear in the completion list when no prefix is provided + Fix for bug#59686 : [Content Assist] Class references are not completing + 2004-04-22 Sean Evoy This is the first part of the patch supplied by Leo at Intel to add error parsers to a managed build project, and to manipulate diff --git a/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/corext/refactoring/rename/RenameElementProcessor.java b/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/corext/refactoring/rename/RenameElementProcessor.java index 29e3b253cfb..6097838f8fc 100644 --- a/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/corext/refactoring/rename/RenameElementProcessor.java +++ b/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/corext/refactoring/rename/RenameElementProcessor.java @@ -10,6 +10,7 @@ ***********************************************************************/ package org.eclipse.cdt.internal.corext.refactoring.rename; +import java.io.StringReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -31,6 +32,15 @@ import org.eclipse.cdt.core.model.ISourceReference; import org.eclipse.cdt.core.model.IStructure; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.IVariable; +import org.eclipse.cdt.core.parser.IQuickParseCallback; +import org.eclipse.cdt.core.parser.IScanner; +import org.eclipse.cdt.core.parser.IToken; +import org.eclipse.cdt.core.parser.NullLogService; +import org.eclipse.cdt.core.parser.ParserFactory; +import org.eclipse.cdt.core.parser.ParserLanguage; +import org.eclipse.cdt.core.parser.ParserMode; +import org.eclipse.cdt.core.parser.ScannerException; +import org.eclipse.cdt.core.parser.ScannerInfo; import org.eclipse.cdt.core.search.BasicSearchMatch; import org.eclipse.cdt.core.search.ICSearchConstants; import org.eclipse.cdt.core.search.ICSearchScope; @@ -178,6 +188,7 @@ public class RenameElementProcessor extends RenameProcessor implements IReferenc } Assert.isNotNull(newName, "new name"); //$NON-NLS-1$ + RefactoringStatus result= null; if (fCElement instanceof IStructure){ result= Checks.checkClassName(newName); @@ -553,5 +564,4 @@ public class RenameElementProcessor extends RenameProcessor implements IReferenc return true; } } - } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java index e2eb974cc15..32e02c4f354 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java @@ -331,10 +331,6 @@ public class CCompletionProcessor implements IContentAssistProcessor { int pos = offset -1; if(pos >= 0){ try{ - //While we aren't on a space, then go back and look for :: or a -> - while ((pos >= 0) && (document.getChar(pos) == ' ')) { - pos--; - } if ((document.getChar(pos) == ':') && (document.getChar(pos -1) != ':')) { // ignore this request return null; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java index b14bf363777..3bf9afc4742 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java @@ -543,18 +543,15 @@ public class CompletionEngine implements RelevanceConstants { // 1. Get the search scope node // the search node is the code scope inwhich completion is requested IASTScope searchNode = completionNode.getCompletionScope(); + String prefix = completionNode.getCompletionPrefix(); // here we have to look for any names that could be referenced within this scope // 1. lookup all ILookupResult result = null; if (completionNode.getCompletionPrefix().length() > 0){ IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1]; kinds[0] = IASTNode.LookupKind.ALL; - String prefix = completionNode.getCompletionPrefix(); result = lookup(searchNode, prefix, kinds, completionNode.getCompletionContext()); addToCompletions(result); - - List macros = lookupMacros(completionNode.getCompletionPrefix()); - addMacrosToCompletions(prefix, macros.iterator()); } else // prefix is empty { @@ -583,7 +580,11 @@ public class CompletionEngine implements RelevanceConstants { result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); addToCompletions(result); } - } + } + + List macros = lookupMacros(completionNode.getCompletionPrefix()); + addMacrosToCompletions(prefix, macros.iterator()); + } private void completionOnClassReference(IASTCompletionNode completionNode){ @@ -707,7 +708,7 @@ public class CompletionEngine implements RelevanceConstants { log ("Offset = " + completionOffset); //$NON-NLS-1$ logNode("Scope = " , completionNode.getCompletionScope()); //$NON-NLS-1$ logNode("Context = " , completionNode.getCompletionContext()); //$NON-NLS-1$ - logKind("Kind = ", completionNode.getCompletionKind()); //$NON-NLS-1$ + logKind("Kind = " , completionNode.getCompletionKind()); //$NON-NLS-1$ log ("Prefix = " + completionNode.getCompletionPrefix()); //$NON-NLS-1$ if (completionNode.getCompletionScope() == null){