From 1ed39d8cead7a8ad064e237b56398b20389bcb4d Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Fri, 28 Mar 2008 13:05:55 +0000 Subject: [PATCH] Fix inclusion proposal for project local includes --- .../ui/tests/text/contentassist2/CompletionTests.java | 9 +++++++++ .../text/contentassist/InclusionProposalComputer.java | 10 +++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java index 87528ed007a..fb19a95a594 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java @@ -990,6 +990,14 @@ public class CompletionTests extends AbstractContentAssistTest { }; assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS); + createFile(fProject, "inc113568.h", ""); + expected= new String[] { + "\"inc1.h", + "\"inc113568.h", + "\"inc2.h" + }; + assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS); + getDocument().replace(fCursorOffset-1, 1, "sub1/"); expected= new String[] { "\"sub1/inc11.h" @@ -1028,4 +1036,5 @@ public class CompletionTests extends AbstractContentAssistTest { } TestScannerProvider.sIncludes= (String[]) includeDirs.toArray(new String[includeDirs.size()]); } + } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java index c29ce55502c..6ea1928b69f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java @@ -304,9 +304,13 @@ public class InclusionProposalComputer implements ICompletionProposalComputer { final IProject project= tu.getCProject().getProject(); parent.accept(new IResourceProxyVisitor() { public boolean visit(IResourceProxy proxy) throws CoreException { + final int type= proxy.getType(); + if (type == IResource.PROJECT) { + return true; + } final String name= proxy.getName(); - if (name.length() < prefixLength && namePrefix.equalsIgnoreCase(name.substring(0, prefixLength))) { - if (proxy.getType() == IResource.FILE) { + if (name.length() >= prefixLength && namePrefix.equalsIgnoreCase(name.substring(0, prefixLength))) { + if (type == IResource.FILE) { if (isCpp) { if (CoreModel.isValidCXXHeaderUnitName(project, name)) { includeFiles.add(cPrefixPath.append(name).toString()); @@ -316,7 +320,7 @@ public class InclusionProposalComputer implements ICompletionProposalComputer { includeFiles.add(cPrefixPath.append(name).toString()); } } - } else if (proxy.getType() == IResource.FOLDER) { + } else if (type == IResource.FOLDER) { includeFiles.add(cPrefixPath.append(name).addTrailingSeparator().toString()); } }