1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix inclusion proposal for project local includes

This commit is contained in:
Anton Leherbauer 2008-03-28 13:05:55 +00:00
parent 5107c20849
commit 1ed39d8cea
2 changed files with 16 additions and 3 deletions

View file

@ -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()]);
}
}

View file

@ -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());
}
}