diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java index 7eb5c1925..78924b136 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java @@ -13,6 +13,7 @@ import com.intellij.openapi.vfs.VirtualFile; import fr.adrienbrault.idea.symfony2plugin.stubs.util.IndexUtil; import fr.adrienbrault.idea.symfony2plugin.util.IdeHelper; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.webDeployment.WebDeploymentUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; @@ -175,7 +176,7 @@ private TextBrowseFolderListener createBrowseFolderListener(final JTextField tex return new TextBrowseFolderListener(fileChooserDescriptor) { @Override public void actionPerformed(ActionEvent e) { - VirtualFile projectDirectory = project.getBaseDir(); + VirtualFile projectDirectory = ProjectUtil.getProjectDir(project); VirtualFile selectedFile = FileChooser.chooseFile( fileChooserDescriptor, project, diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java index 214acdf3a..25395020b 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java @@ -19,6 +19,7 @@ import fr.adrienbrault.idea.symfony2plugin.profiler.widget.SymfonyProfilerWidget; import fr.adrienbrault.idea.symfony2plugin.routing.RouteHelper; import fr.adrienbrault.idea.symfony2plugin.util.IdeHelper; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.service.ServiceXmlParserFactory; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -129,7 +130,7 @@ public Collection getContainerFiles() { private void checkProject() { if(!this.isEnabled() && !Settings.getInstance(project).dismissEnableNotification - && VfsUtil.findRelativeFile(this.project.getBaseDir(), "vendor", "symfony") != null + && VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(this.project), "vendor", "symfony") != null ) { IdeHelper.notifyEnableMessage(project); @@ -155,12 +156,12 @@ public static boolean isEnabledForIndex(Project project) { return true; } - if(VfsUtil.findRelativeFile(project.getBaseDir(), "vendor", "symfony") != null) { + if(VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), "vendor", "symfony") != null) { return true; } // drupal8; this should not really here - if(VfsUtil.findRelativeFile(project.getBaseDir(), "core", "vendor", "symfony") != null) { + if(VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), "core", "vendor", "symfony") != null) { return true; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/dict/TranslationFileModel.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/dict/TranslationFileModel.java index 13509aa1c..da809c9b5 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/dict/TranslationFileModel.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/dict/TranslationFileModel.java @@ -2,6 +2,7 @@ import com.intellij.openapi.vfs.VfsUtil; import com.intellij.psi.PsiFile; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.dict.SymfonyBundle; import org.jetbrains.annotations.Nullable; @@ -34,7 +35,7 @@ public void addWeight(int weight) { @Nullable public String getRelativePath() { - return VfsUtil.getRelativePath(psiFile.getVirtualFile(), psiFile.getProject().getBaseDir(), '/'); + return VfsUtil.getRelativePath(psiFile.getVirtualFile(), ProjectUtil.getProjectDir(psiFile), '/'); } public String getDomain() { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/generator/naming/JavascriptServiceNameStrategy.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/generator/naming/JavascriptServiceNameStrategy.java index 67b1a8621..a464665c6 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/generator/naming/JavascriptServiceNameStrategy.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/generator/naming/JavascriptServiceNameStrategy.java @@ -7,6 +7,7 @@ import fr.adrienbrault.idea.symfony2plugin.Settings; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -54,7 +55,7 @@ public static Object run(@NotNull Project project, @NotNull String className, @N PhpClass aClass = PhpElementsUtil.getClass(project, className); if(aClass != null) { - String relativePath = VfsUtil.getRelativePath(aClass.getContainingFile().getVirtualFile(), project.getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(aClass.getContainingFile().getVirtualFile(), ProjectUtil.getProjectDir(aClass), '/'); if(relativePath != null) { jsonObject.addProperty("relativePath", relativePath); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/asset/AssetDirectoryReader.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/asset/AssetDirectoryReader.java index 98ae4f9bf..966f63c49 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/asset/AssetDirectoryReader.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/asset/AssetDirectoryReader.java @@ -6,6 +6,7 @@ import com.intellij.openapi.vfs.VirtualFileVisitor; import com.intellij.psi.PsiDirectory; import fr.adrienbrault.idea.symfony2plugin.Settings; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.SymfonyBundleUtil; import fr.adrienbrault.idea.symfony2plugin.util.dict.SymfonyBundle; import org.apache.commons.lang.StringUtils; @@ -42,9 +43,8 @@ public AssetDirectoryReader(@NotNull String[] filterExtension, boolean includeBu @Nullable private static VirtualFile getProjectAssetRoot(@NotNull Project project) { - VirtualFile projectDirectory = project.getBaseDir(); String webDirectoryName = Settings.getInstance(project).directoryToWeb; - return VfsUtil.findRelativeFile(projectDirectory, webDirectoryName.split("/")); + return VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), webDirectoryName.split("/")); } @NotNull diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/utils/ConfigUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/utils/ConfigUtil.java index e649023b1..244762e9f 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/utils/ConfigUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/utils/ConfigUtil.java @@ -11,6 +11,7 @@ import com.jetbrains.php.lang.psi.elements.*; import fr.adrienbrault.idea.symfony2plugin.util.FilesystemUtil; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.yaml.YAMLFileType; @@ -171,7 +172,7 @@ public static Collection getConfigurations(@NotNull Project project Collection virtualFiles = new HashSet<>(); for (String[] path : paths) { - VirtualFile configFile = VfsUtil.findRelativeFile(project.getBaseDir(), path); + VirtualFile configFile = VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), path); if(configFile != null) { virtualFiles.add(configFile); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/yaml/completion/ConfigCompletionProvider.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/yaml/completion/ConfigCompletionProvider.java index e5d20e02b..70b4f0822 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/yaml/completion/ConfigCompletionProvider.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/config/yaml/completion/ConfigCompletionProvider.java @@ -12,6 +12,7 @@ import com.intellij.util.containers.ContainerUtil; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper; import org.apache.commons.lang.StringUtils; import org.apache.xerces.dom.CommentImpl; @@ -81,7 +82,7 @@ protected void addCompletions(@NotNull CompletionParameters completionParameters // reverse to get top most item first Collections.reverse(items); - Document document = getConfigTemplate(element.getProject().getBaseDir()); + Document document = getConfigTemplate(ProjectUtil.getProjectDir(element)); if(document == null) { return; } @@ -332,7 +333,7 @@ private Map getNodeCommentVars(@Nullable Node node) { private void attachRootConfig(CompletionResultSet completionResultSet, PsiElement element) { - Document document = getConfigTemplate(element.getProject().getBaseDir()); + Document document = getConfigTemplate(ProjectUtil.getProjectDir(element)); if(document == null) { return; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/ContainerFile.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/ContainerFile.java index 2aed3e29a..cf543c7dd 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/ContainerFile.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/ContainerFile.java @@ -6,6 +6,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.xmlb.annotations.Tag; import fr.adrienbrault.idea.symfony2plugin.ui.dict.AbstractUiFilePath; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.Nullable; import java.io.File; @@ -26,7 +27,7 @@ public ContainerFile(String path) { @Nullable public File getFile(Project project) { if (!FileUtil.isAbsolute(this.path)) { - VirtualFile virtualFile = VfsUtil.findRelativeFile(this.path, project.getBaseDir()); + VirtualFile virtualFile = VfsUtil.findRelativeFile(this.path, ProjectUtil.getProjectDir(project)); if(virtualFile == null) { return null; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/DotEnvUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/DotEnvUtil.java index 0f986bda6..758f9637a 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/DotEnvUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/DotEnvUtil.java @@ -11,6 +11,7 @@ import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.*; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; @@ -102,7 +103,7 @@ private static void visitEnvironment(@NotNull Project project, @NotNull Consumer } // search root directory for all ".env*" files - VirtualFile projectDir = VfsUtil.findRelativeFile(project.getBaseDir()); + VirtualFile projectDir = VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project)); if (projectDir != null) { for (VirtualFile child : projectDir.getChildren()) { if (child.getName().startsWith(".env")) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java index 0b8f1d129..c82194ab3 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java @@ -697,7 +697,7 @@ private static Collection getContainerFilesInner(@NotNull Project projec // several Symfony cache folder structures for (String root : new String[] {"var/cache", "app/cache"}) { - VirtualFile baseDir = project.getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(project); VirtualFile relativeFile = VfsUtil.findRelativeFile(root, baseDir); if (relativeFile == null) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/intention/PhpServiceArgumentIntention.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/intention/PhpServiceArgumentIntention.java index 43b015019..d09a3998d 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/intention/PhpServiceArgumentIntention.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/intention/PhpServiceArgumentIntention.java @@ -17,6 +17,7 @@ import fr.adrienbrault.idea.symfony2plugin.action.ServiceActionUtil; import fr.adrienbrault.idea.symfony2plugin.stubs.ContainerCollectionResolver; import fr.adrienbrault.idea.symfony2plugin.stubs.ServiceIndexUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.yaml.psi.YAMLKeyValue; @@ -54,7 +55,7 @@ public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement Map map = new HashMap<>(); for (PsiElement element : psiElements) { - map.put(VfsUtil.getRelativePath(element.getContainingFile().getVirtualFile(), element.getProject().getBaseDir()), element); + map.put(VfsUtil.getRelativePath(element.getContainingFile().getVirtualFile(), ProjectUtil.getProjectDir(element)), element); } final JBList list = new JBList<>(map.keySet()); @@ -96,7 +97,7 @@ private void invokeByScope(@NotNull PsiElement psiElement, @NotNull Editor edito return; } - String relativePath = VfsUtil.getRelativePath(psiElement.getContainingFile().getVirtualFile(), psiElement.getProject().getBaseDir()); + String relativePath = VfsUtil.getRelativePath(psiElement.getContainingFile().getVirtualFile(), ProjectUtil.getProjectDir(psiElement)); if (relativePath == null) { relativePath = "n/a"; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/factory/LocalProfilerFactory.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/factory/LocalProfilerFactory.java index 743a3a683..2cc6c433b 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/factory/LocalProfilerFactory.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/factory/LocalProfilerFactory.java @@ -7,6 +7,7 @@ import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; import fr.adrienbrault.idea.symfony2plugin.profiler.LocalProfilerIndex; import fr.adrienbrault.idea.symfony2plugin.profiler.ProfilerIndexInterface; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -47,7 +48,7 @@ private File findCsvProfilerFile(@NotNull Project project) { return getCsvIndex(project); } - VirtualFile relativeFile = VfsUtil.findRelativeFile(project.getBaseDir(), profilerCsvPath.replace("\\", "/").split("/")); + VirtualFile relativeFile = VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), profilerCsvPath.replace("\\", "/").split("/")); if (relativeFile != null) { return VfsUtil.virtualToIoFile(relativeFile); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/ui/ProfilerSettingsDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/ui/ProfilerSettingsDialog.java index d093d467c..b8a052249 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/ui/ProfilerSettingsDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/ui/ProfilerSettingsDialog.java @@ -11,6 +11,7 @@ import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import fr.adrienbrault.idea.symfony2plugin.Settings; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -114,7 +115,7 @@ private TextBrowseFolderListener createBrowseFolderListener(final JTextField tex return new TextBrowseFolderListener(fileChooserDescriptor) { @Override public void actionPerformed(ActionEvent e) { - VirtualFile projectDirectory = project.getBaseDir(); + VirtualFile projectDirectory = ProjectUtil.getProjectDir(project); String text = textField.getText(); VirtualFile toSelect = VfsUtil.findRelativeFile(text, projectDirectory); diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ContainerBuilderStubIndex.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ContainerBuilderStubIndex.java index d61929132..636ae04fd 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ContainerBuilderStubIndex.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ContainerBuilderStubIndex.java @@ -22,6 +22,7 @@ import fr.adrienbrault.idea.symfony2plugin.dic.container.dict.ContainerBuilderCall; import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import gnu.trove.THashMap; import one.util.streamex.StreamEx; import org.apache.commons.lang.StringUtils; @@ -123,7 +124,7 @@ private static boolean isValidForIndex(FileContent inputData, PsiFile psiFile) { } // is Test file in path name - String relativePath = VfsUtil.getRelativePath(inputData.getFile(), psiFile.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(inputData.getFile(), ProjectUtil.getProjectDir(psiFile), '/'); if(relativePath != null && (relativePath.contains("/Test/") || relativePath.contains("/Tests/") || relativePath.contains("/Fixture/") || relativePath.contains("/Fixtures/"))) { return false; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/RoutesStubIndex.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/RoutesStubIndex.java index 7b129de31..37af9acc9 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/RoutesStubIndex.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/RoutesStubIndex.java @@ -18,6 +18,7 @@ import fr.adrienbrault.idea.symfony2plugin.stubs.dict.StubIndexedRoute; import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer; import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.yaml.YAMLFileType; @@ -123,7 +124,7 @@ private static boolean isValidForIndex(FileContent inputData, PsiFile psiFile) { return false; } - VirtualFile baseDir = inputData.getProject().getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(psiFile); if(baseDir == null) { return false; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ServicesDefinitionStubIndex.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ServicesDefinitionStubIndex.java index 56c3ea09b..97b008a0e 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ServicesDefinitionStubIndex.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/ServicesDefinitionStubIndex.java @@ -11,6 +11,7 @@ import fr.adrienbrault.idea.symfony2plugin.dic.container.ServiceSerializable; import fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil; import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.yaml.YAMLFileType; @@ -101,7 +102,7 @@ public static boolean isValidForIndex(FileContent inputData, PsiFile psiFile) { // possible fixture or test file // to support also library paths, only filter them on project files - String relativePath = VfsUtil.getRelativePath(inputData.getFile(), psiFile.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(inputData.getFile(), ProjectUtil.getProjectDir(psiFile), '/'); if(relativePath != null && (relativePath.contains("/Test/") || relativePath.contains("/Tests/") || relativePath.contains("/Fixture/") || relativePath.contains("/Fixtures/"))) { return false; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/TranslationStubIndex.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/TranslationStubIndex.java index 157ec4efb..074af9afe 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/TranslationStubIndex.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/TranslationStubIndex.java @@ -10,6 +10,7 @@ import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.StringSetDataExternalizer; import fr.adrienbrault.idea.symfony2plugin.translation.collector.YamlTranslationVisitor; import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import gnu.trove.THashMap; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; @@ -82,7 +83,7 @@ private boolean isValidTranslationFile(@NotNull FileContent inputData, @NotNull // dont index all yaml files; valid: // - "Resources/translations" // - "translations/[.../]foo.de.yml" - String relativePath = VfsUtil.getRelativePath(inputData.getFile(), psiFile.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(inputData.getFile(), ProjectUtil.getProjectDir(psiFile), '/'); if(relativePath != null) { return relativePath.contains("/translations") || relativePath.startsWith("translations/"); } @@ -96,7 +97,7 @@ private boolean isValidTranslationFile(@NotNull FileContent inputData, @NotNull @NotNull private Map> getXlfStringMap(@NotNull FileContent inputData) { // testing files are not that nice - String relativePath = VfsUtil.getRelativePath(inputData.getFile(), inputData.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(inputData.getFile(), ProjectUtil.getProjectDir(inputData.getPsiFile()), '/'); if(relativePath != null && (relativePath.contains("/Test/") || relativePath.contains("/Tests/") || relativePath.contains("/Fixture/") || relativePath.contains("/Fixtures/"))) { return Collections.emptyMap(); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/TwigLineMarkerProvider.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/TwigLineMarkerProvider.java index 66842f862..a29ae6b5f 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/TwigLineMarkerProvider.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/TwigLineMarkerProvider.java @@ -32,6 +32,7 @@ import fr.adrienbrault.idea.symfony2plugin.twig.loader.FileImplementsLazyLoader; import fr.adrienbrault.idea.symfony2plugin.twig.loader.FileOverwritesLazyLoader; import fr.adrienbrault.idea.symfony2plugin.twig.utils.TwigBlockUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.PsiElementUtils; import icons.TwigIcons; import org.apache.commons.lang.StringUtils; @@ -310,7 +311,7 @@ public String getElementText(PsiElement psiElement) { protected String getContainerText(PsiElement psiElement, String s) { // relative path else fallback to default name extraction PsiFile containingFile = psiElement.getContainingFile(); - String relativePath = VfsUtil.getRelativePath(containingFile.getVirtualFile(), psiElement.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(containingFile.getVirtualFile(), ProjectUtil.getProjectDir(psiElement), '/'); return relativePath != null ? relativePath : SymbolPresentationUtil.getSymbolContainerText(psiElement); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateCreateByNameLocalQuickFix.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateCreateByNameLocalQuickFix.java index f8ef7a72e..ec7a81b2e 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateCreateByNameLocalQuickFix.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/inspection/TemplateCreateByNameLocalQuickFix.java @@ -16,6 +16,7 @@ import com.jetbrains.twig.TwigFileType; import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil; import fr.adrienbrault.idea.symfony2plugin.util.IdeHelper; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -102,12 +103,12 @@ private static void createFile(@NotNull Project project, @NotNull String relativ int i = relativePath.lastIndexOf("/"); if(i > 0) { - relativeBlockScopeFile = VfsUtil.findRelativeFile(project.getBaseDir(), relativePath.substring(0, i).split("/")); + relativeBlockScopeFile = VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), relativePath.substring(0, i).split("/")); } String content = TwigUtil.buildStringFromTwigCreateContainer(project, relativeBlockScopeFile); - IdeHelper.RunnableCreateAndOpenFile runnableCreateAndOpenFile = IdeHelper.getRunnableCreateAndOpenFile(project, TwigFileType.INSTANCE, project.getBaseDir(), relativePath); + IdeHelper.RunnableCreateAndOpenFile runnableCreateAndOpenFile = IdeHelper.getRunnableCreateAndOpenFile(project, TwigFileType.INSTANCE, ProjectUtil.getProjectDir(project), relativePath); if(content != null) { runnableCreateAndOpenFile.setContent(content); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/GlobalAppTwigNamespaceExtension.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/GlobalAppTwigNamespaceExtension.java index abbcf5468..31a5ccab4 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/GlobalAppTwigNamespaceExtension.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/GlobalAppTwigNamespaceExtension.java @@ -6,6 +6,7 @@ import fr.adrienbrault.idea.symfony2plugin.extension.TwigNamespaceExtensionParameter; import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil; import fr.adrienbrault.idea.symfony2plugin.util.FilesystemUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -26,7 +27,7 @@ public class GlobalAppTwigNamespaceExtension implements TwigNamespaceExtension { @NotNull @Override public Collection getNamespaces(@NotNull TwigNamespaceExtensionParameter parameter) { - VirtualFile baseDir = parameter.getProject().getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(parameter.getProject()); // "app" folder Collection directories = FilesystemUtil.getAppDirectories(parameter.getProject()).stream() diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java index a34caa3bc..ca22ec634 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java @@ -5,6 +5,7 @@ import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -84,13 +85,13 @@ public String getRelativePath(@NotNull Project project) { return null; } - return VfsUtil.getRelativePath(virtualFile, project.getBaseDir(), '/'); + return VfsUtil.getRelativePath(virtualFile, ProjectUtil.getProjectDir(project), '/'); } @Nullable public VirtualFile getDirectory(@NotNull Project project) { if(!FileUtil.isAbsolute(path)) { - return VfsUtil.findRelativeFile(path, project.getBaseDir()); + return VfsUtil.findRelativeFile(path, ProjectUtil.getProjectDir(project)); } else { VirtualFile fileByIoFile = VfsUtil.findFileByIoFile(new File(path), true); if(fileByIoFile != null) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java index 44ebb866a..02572fa63 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java @@ -52,10 +52,7 @@ import fr.adrienbrault.idea.symfony2plugin.templating.path.TwigPath; import fr.adrienbrault.idea.symfony2plugin.templating.variable.dict.PsiVariable; import fr.adrienbrault.idea.symfony2plugin.twig.assets.TwigNamedAssetsServiceParser; -import fr.adrienbrault.idea.symfony2plugin.util.FilesystemUtil; -import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; -import fr.adrienbrault.idea.symfony2plugin.util.PsiElementUtils; -import fr.adrienbrault.idea.symfony2plugin.util.SymfonyBundleUtil; +import fr.adrienbrault.idea.symfony2plugin.util.*; import fr.adrienbrault.idea.symfony2plugin.util.dict.SymfonyBundle; import fr.adrienbrault.idea.symfony2plugin.util.psi.PsiElementAssertUtil; import fr.adrienbrault.idea.symfony2plugin.util.service.ServiceXmlParserFactory; @@ -885,7 +882,7 @@ public static String getPresentableTemplateName(@NotNull PsiElement psiElement, return templateName; } - String relativePath = VfsUtil.getRelativePath(currentFile, psiElement.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(currentFile, ProjectUtil.getProjectDir(psiElement), '/'); return relativePath != null ? relativePath : currentFile.getPath(); } @@ -1505,7 +1502,7 @@ public static Collection getTwigMacroTargets(final Project project, */ @NotNull public static Collection getTwigLookupElements(@NotNull Project project) { - VirtualFile baseDir = project.getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(project); return getTemplateMap(project).entrySet() .stream() @@ -1521,7 +1518,7 @@ public static Collection getTwigLookupElements(@NotNull Project p */ @NotNull public static Collection getAllTemplateLookupElements(@NotNull Project project) { - VirtualFile baseDir = project.getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(project); return getTemplateMap(project, true).entrySet() .stream() @@ -1889,7 +1886,7 @@ public static Collection> getTwigPathFromYamlConfig(@NotNul */ @NotNull public static Collection> getTwigPathFromYamlConfigResolved(@NotNull YAMLFile yamlFile) { - VirtualFile baseDir = yamlFile.getProject().getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(yamlFile); Collection> paths = new ArrayList<>(); @@ -2106,7 +2103,7 @@ public static String buildStringFromTwigCreateContainer(@NotNull Project project @Nullable public static String getTemplateNameByOverwrite(@NotNull Project project, @NotNull VirtualFile virtualFile) { - String relativePath = VfsUtil.getRelativePath(virtualFile, project.getBaseDir()); + String relativePath = VfsUtil.getRelativePath(virtualFile, ProjectUtil.getProjectDir(project)); if(relativePath == null) { return null; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationIndex.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationIndex.java index 229e2e632..ab9590db4 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationIndex.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationIndex.java @@ -15,6 +15,7 @@ import fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil; import fr.adrienbrault.idea.symfony2plugin.translation.parser.TranslationPsiParser; import fr.adrienbrault.idea.symfony2plugin.translation.parser.TranslationStringMap; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import fr.adrienbrault.idea.symfony2plugin.util.TimeSecondModificationTracker; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; @@ -113,7 +114,7 @@ private Collection getTranslationRootInner() { } } - VirtualFile baseDir = project.getBaseDir(); + VirtualFile baseDir = ProjectUtil.getProjectDir(project); for (String containerFile : ServiceContainerUtil.getContainerFiles(project)) { // resolve the file diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAction.java index f89b1f6bb..d7d7988f7 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAction.java @@ -11,6 +11,7 @@ import com.intellij.psi.PsiManager; import com.intellij.util.IncorrectOperationException; import fr.adrienbrault.idea.symfony2plugin.translation.util.TranslationInsertUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.NotNull; /** @@ -41,7 +42,7 @@ public String getText() { VirtualFile virtualFile = psiFile.getVirtualFile(); if(virtualFile != null) { filename = virtualFile.getPath(); - String relativePath = VfsUtil.getRelativePath(virtualFile, psiFile.getProject().getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(virtualFile, ProjectUtil.getProjectDir(psiFile), '/'); if(relativePath != null) { filename = relativePath; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAndQuickFixAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAndQuickFixAction.java index 9d0cda0b6..7c2171e5b 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAndQuickFixAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/TranslationKeyIntentionAndQuickFixAction.java @@ -13,6 +13,7 @@ import com.intellij.ui.components.JBList; import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil; import fr.adrienbrault.idea.symfony2plugin.translation.util.TranslationInsertUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; @@ -66,7 +67,7 @@ private String getPresentableName(@NotNull Project project, @NotNull VirtualFile // try to find suitable presentable filename String filename = virtualFile.getPath(); - String relativePath = VfsUtil.getRelativePath(virtualFile, project.getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(virtualFile, ProjectUtil.getProjectDir(project), '/'); if(relativePath != null) { filename = relativePath; } @@ -84,7 +85,7 @@ public void applyFix(@NotNull Project project, @NotNull PsiFile psiFile, @Nullab for(PsiFile translationPsiFile: this.domainCollector.collect(project, key, domain)) { if(translationPsiFile instanceof YAMLFile || TranslationUtil.isSupportedXlfFile(translationPsiFile)) { - String relativePath = VfsUtil.getRelativePath(translationPsiFile.getVirtualFile(), project.getBaseDir(), '/'); + String relativePath = VfsUtil.getRelativePath(translationPsiFile.getVirtualFile(), ProjectUtil.getProjectDir(project), '/'); // sort collection. eg vendor last if(relativePath != null && (relativePath.startsWith("app") || relativePath.startsWith("src"))) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java index d7a4e6f13..07431f0bc 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java @@ -11,6 +11,7 @@ import com.intellij.ui.table.TableView; import fr.adrienbrault.idea.symfony2plugin.templating.path.TwigPath; import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.apache.commons.lang.StringUtils; import javax.swing.*; @@ -117,7 +118,7 @@ private TextBrowseFolderListener createBrowseFolderListener(final JTextField tex return new TextBrowseFolderListener(fileChooserDescriptor) { @Override public void actionPerformed(ActionEvent e) { - VirtualFile projectDirectory = project.getBaseDir(); + VirtualFile projectDirectory = ProjectUtil.getProjectDir(project); VirtualFile selectedFile = FileChooser.chooseFile( fileChooserDescriptor, project, diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/dict/AbstractUiFilePath.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/dict/AbstractUiFilePath.java index 5d5c1b162..fbd3213d1 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/dict/AbstractUiFilePath.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/dict/AbstractUiFilePath.java @@ -4,6 +4,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.util.xmlb.annotations.Attribute; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.NotNull; import java.io.File; @@ -17,7 +18,7 @@ public abstract class AbstractUiFilePath implements UiFilePathInterface { public boolean exists(@NotNull Project project) { if (!FileUtil.isAbsolute(this.path)) { - return VfsUtil.findRelativeFile(this.path, project.getBaseDir()) != null; + return VfsUtil.findRelativeFile(this.path, ProjectUtil.getProjectDir(project)) != null; } return new File(this.path).exists(); diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/utils/UiSettingsUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/utils/UiSettingsUtil.java index 3bd84e719..64fada9fc 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/utils/UiSettingsUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/utils/UiSettingsUtil.java @@ -12,6 +12,7 @@ import com.jetbrains.plugins.webDeployment.ui.ServerBrowserDialog; import fr.adrienbrault.idea.symfony2plugin.ui.dict.UiFilePathInterface; import fr.adrienbrault.idea.symfony2plugin.ui.dict.UiFilePathPresentable; +import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -29,7 +30,7 @@ public static String getPathDialog(@NotNull Project project, @NotNull FileType f @Nullable public static String getPathDialog(@NotNull Project project, @NotNull FileType fileType, @Nullable String current) { - VirtualFile projectDirectory = project.getBaseDir(); + VirtualFile projectDirectory = ProjectUtil.getProjectDir(project); VirtualFile selectedFileBefore = null; if(current != null) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/FilesystemUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/FilesystemUtil.java index 72fdda7c1..3ee99a782 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/FilesystemUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/FilesystemUtil.java @@ -55,7 +55,7 @@ public static Collection getAppDirectories(@NotNull Project project } else { // relative path resolve VirtualFile globalDirectory = VfsUtil.findRelativeFile( - project.getBaseDir(), + ProjectUtil.getProjectDir(project), directoryToApp.replace("\\", "/").split("/") ); @@ -65,7 +65,7 @@ public static Collection getAppDirectories(@NotNull Project project } // global "app" in root - VirtualFile templates = VfsUtil.findRelativeFile(project.getBaseDir(), "app"); + VirtualFile templates = VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), "app"); if(templates != null) { virtualFiles.add(templates); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/IdeHelper.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/IdeHelper.java index 2dafdead0..f7e4d1df5 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/IdeHelper.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/IdeHelper.java @@ -149,12 +149,12 @@ public static void enablePluginAndConfigure(@NotNull Project project) { Settings.getInstance(project).pluginEnabled = true; // Symfony 3.0 structure - if(VfsUtil.findRelativeFile(project.getBaseDir(), "var", "cache") != null) { + if(VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), "var", "cache") != null) { Settings.getInstance(project).pathToTranslation = "var/cache/dev/translations"; } // Symfony 4.0 structure - if(VfsUtil.findRelativeFile(project.getBaseDir(), "public") != null) { + if(VfsUtil.findRelativeFile(ProjectUtil.getProjectDir(project), "public") != null) { Settings.getInstance(project).directoryToWeb = "public"; } } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/ProjectUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/ProjectUtil.java new file mode 100644 index 000000000..fde3e5a30 --- /dev/null +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/ProjectUtil.java @@ -0,0 +1,28 @@ +package fr.adrienbrault.idea.symfony2plugin.util; + +import com.intellij.openapi.project.Project; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; + +/** + * All project related function + */ +public class ProjectUtil { + /** + * Single project usage is deprecated which wraps the single project resolving + * + * RootManager should be taken as is module based and allows more then one root; for now change all is too much + * You should provide a file context, with this help we can search for in which root its given; see replacement function + */ + public static VirtualFile getProjectDir(@NotNull Project project) { + return project.getBaseDir(); + } + + /** + * This function should be use as a replaced, with given a context we know a possible project root + */ + public static VirtualFile getProjectDir(@NotNull PsiElement context) { + return getProjectDir(context.getProject()); + } +} diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/VfsExUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/VfsExUtil.java index 7f2244401..8a8ebe5c0 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/VfsExUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/VfsExUtil.java @@ -16,6 +16,6 @@ public static String getRelativeProjectPath(@NotNull Project project, @NotNull V if(ApplicationManager.getApplication().isUnitTestMode()) { return virtualFile.getPath(); } - return VfsUtil.getRelativePath(virtualFile, project.getBaseDir()); + return VfsUtil.getRelativePath(virtualFile, ProjectUtil.getProjectDir(project)); } }