From 4a921c0bb0f1bae6960b4dd9754a80b48fe101d7 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Wed, 23 Dec 2020 19:46:55 +0530 Subject: [PATCH 1/4] Added CopyMagentoPath action --- resources/META-INF/plugin.xml | 6 ++ .../actions/CopyMagentoPath.java | 65 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml index de03eb6ab..efee2c7b5 100644 --- a/resources/META-INF/plugin.xml +++ b/resources/META-INF/plugin.xml @@ -94,6 +94,12 @@ + + + diff --git a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java new file mode 100644 index 000000000..9de14fdfa --- /dev/null +++ b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java @@ -0,0 +1,65 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.actions; + +import com.intellij.ide.actions.CopyPathProvider; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiDirectory; +import com.intellij.psi.PsiManager; +import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class CopyMagentoPath extends CopyPathProvider { + public static final String PHTML = "phtml"; + public static final String PHTML_SEPARATOR = "::"; + private int index; + private final String[] templatePaths = { + "view/frontend/templates/", + "view/adminhtml/templates/", + "view/base/templates/" + }; + + @Override + public void update(@NotNull AnActionEvent e) { + final VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE); + if (virtualFile != null && virtualFile.isDirectory()) { + e.getPresentation().setVisible(false); + } + } + + @Nullable + @Override + public String getPathToElement(@NotNull Project project, @Nullable VirtualFile virtualFile, @Nullable Editor editor) { + final PsiDirectory directory = PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory(); + final StringBuilder fullPath = new StringBuilder(virtualFile.getPath()); + final StringBuilder magentoPath = new StringBuilder(GetModuleNameByDirectoryUtil.execute(directory, project)); + String path = fullPath.toString(); + + if (PHTML.equals(virtualFile.getExtension())) { + index = -1; + final int endIndex = getIndexOf(fullPath, templatePaths[++index]); + final int offset = templatePaths[index].length(); + + fullPath.replace(0, endIndex + offset, ""); + magentoPath.append(PHTML_SEPARATOR); + magentoPath.append(fullPath); + path = magentoPath.toString(); + } + + return path; + } + + private int getIndexOf(StringBuilder fullPath, String path) { + return fullPath.lastIndexOf(path) != -1 + ? fullPath.lastIndexOf(path) + : getIndexOf(fullPath, templatePaths[++index]); + } +} From fb54d67977fcdc0ef151b7b189b934afa1dc51aa Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Wed, 13 Jan 2021 12:45:40 +0530 Subject: [PATCH 2/4] Fixed CodeStyles issues --- .../idea/magento2plugin/actions/CopyMagentoPath.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java index 9de14fdfa..debb76cad 100644 --- a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java +++ b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java @@ -37,10 +37,16 @@ public void update(@NotNull AnActionEvent e) { @Nullable @Override - public String getPathToElement(@NotNull Project project, @Nullable VirtualFile virtualFile, @Nullable Editor editor) { - final PsiDirectory directory = PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory(); + public String getPathToElement( + @NotNull Project project, + @Nullable VirtualFile virtualFile, + @Nullable Editor editor + ) { + final PsiDirectory directory + = PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory(); final StringBuilder fullPath = new StringBuilder(virtualFile.getPath()); - final StringBuilder magentoPath = new StringBuilder(GetModuleNameByDirectoryUtil.execute(directory, project)); + final StringBuilder magentoPath + = new StringBuilder(GetModuleNameByDirectoryUtil.execute(directory, project)); String path = fullPath.toString(); if (PHTML.equals(virtualFile.getExtension())) { From d16d5dd8c5a7a899837c7c0da10b12c1570de260 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Wed, 13 Jan 2021 12:56:06 +0530 Subject: [PATCH 3/4] Fixed spacing --- .../idea/magento2plugin/actions/CopyMagentoPath.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java index debb76cad..15a988883 100644 --- a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java +++ b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java @@ -38,15 +38,15 @@ public void update(@NotNull AnActionEvent e) { @Nullable @Override public String getPathToElement( - @NotNull Project project, - @Nullable VirtualFile virtualFile, - @Nullable Editor editor + @NotNull Project project, + @Nullable VirtualFile virtualFile, + @Nullable Editor editor ) { final PsiDirectory directory - = PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory(); + = PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory(); final StringBuilder fullPath = new StringBuilder(virtualFile.getPath()); final StringBuilder magentoPath - = new StringBuilder(GetModuleNameByDirectoryUtil.execute(directory, project)); + = new StringBuilder(GetModuleNameByDirectoryUtil.execute(directory, project)); String path = fullPath.toString(); if (PHTML.equals(virtualFile.getExtension())) { From cef5ee377db57b31984d1a74eceaa2997d23e6fc Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Wed, 13 Jan 2021 13:02:24 +0530 Subject: [PATCH 4/4] Fixed PMD issues --- .../actions/CopyMagentoPath.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java index 15a988883..9ba6a9405 100644 --- a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java +++ b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java @@ -28,19 +28,19 @@ public class CopyMagentoPath extends CopyPathProvider { }; @Override - public void update(@NotNull AnActionEvent e) { - final VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE); + public void update(@NotNull final AnActionEvent event) { + final VirtualFile virtualFile = event.getData(PlatformDataKeys.VIRTUAL_FILE); if (virtualFile != null && virtualFile.isDirectory()) { - e.getPresentation().setVisible(false); + event.getPresentation().setVisible(false); } } @Nullable @Override public String getPathToElement( - @NotNull Project project, - @Nullable VirtualFile virtualFile, - @Nullable Editor editor + @NotNull final Project project, + @Nullable final VirtualFile virtualFile, + @Nullable final Editor editor ) { final PsiDirectory directory = PsiManager.getInstance(project).findFile(virtualFile).getContainingDirectory(); @@ -63,9 +63,9 @@ public String getPathToElement( return path; } - private int getIndexOf(StringBuilder fullPath, String path) { - return fullPath.lastIndexOf(path) != -1 - ? fullPath.lastIndexOf(path) - : getIndexOf(fullPath, templatePaths[++index]); + private int getIndexOf(final StringBuilder fullPath, final String path) { + return fullPath.lastIndexOf(path) == -1 + ? getIndexOf(fullPath, templatePaths[++index]) + : fullPath.lastIndexOf(path); } }