From ed599b98adfa34ef710a06d76daa8817077af817 Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Fri, 13 Nov 2009 15:50:38 +0300 Subject: [PATCH] calculate prefix for path completion contributor properly --- .../completion/FilePathCompletionContributor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java index f4b84734a9f6..b1eacc72e434 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java @@ -101,8 +101,8 @@ public class FilePathCompletionContributor extends CompletionContributor { if (first == null) return; final FileReferenceSet set = first.getFileReferenceSet(); - String prefix = set.getPathString().replace(CompletionUtil.DUMMY_IDENTIFIER_TRIMMED, ""); - + String prefix = set.getPathString().substring(0, parameters.getOffset() - set.getElement().getTextRange().getStartOffset() - set.getStartInElement()); + final List[] pathPrefixParts = new List[] {null}; int lastSlashIndex; if ((lastSlashIndex = prefix.lastIndexOf('/')) != -1) { @@ -110,6 +110,8 @@ public class FilePathCompletionContributor extends CompletionContributor { prefix = prefix.substring(lastSlashIndex + 1); } + final CompletionResultSet __result = result.withPrefixMatcher(prefix).caseInsensitive(); + final PsiFile originalFile = parameters.getOriginalFile(); final VirtualFile contextFile = originalFile.getVirtualFile(); if (contextFile != null) { @@ -147,7 +149,7 @@ public class FilePathCompletionContributor extends CompletionContributor { if (virtualFile != null && virtualFile.isValid() && virtualFile != contextFile) { if (contextHelper.isMine(project, virtualFile)) { if (pathPrefixParts[0] == null || fileMatchesPathPrefix(contextHelper.getPsiFileSystemItem(project, virtualFile), pathPrefixParts[0])) { - result.addElement(new FilePathLookupItem(file, contextHelper)); + __result.addElement(new FilePathLookupItem(file, contextHelper)); } } }