diff --git a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java index ac79aebbe..b6b62e83e 100644 --- a/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java +++ b/src/com/magento/idea/magento2plugin/actions/CopyMagentoPath.java @@ -22,10 +22,8 @@ public class CopyMagentoPath extends CopyPathProvider { public static final String PHTML_EXTENSION = "phtml"; - public static final String JS_EXTENSION = "js"; - public static final String CSS_EXTENSION = "css"; - private final List acceptedTypes - = Arrays.asList(PHTML_EXTENSION, JS_EXTENSION, CSS_EXTENSION); + public static final List WEB_EXTENSIONS + = Arrays.asList("js", "css", "png", "jpg", "jpeg", "gif"); public static final String SEPARATOR = "::"; private int index; @@ -53,7 +51,8 @@ public void update(@NotNull final AnActionEvent event) { private boolean isNotValidFile(final VirtualFile virtualFile) { return virtualFile != null && virtualFile.isDirectory() - || virtualFile != null && !acceptedTypes.contains(virtualFile.getExtension()); + || virtualFile != null && !WEB_EXTENSIONS.contains(virtualFile.getExtension()) + && !PHTML_EXTENSION.equals(virtualFile.getExtension()); } @Nullable @@ -83,19 +82,22 @@ public String getPathToElement( if (PHTML_EXTENSION.equals(virtualFile.getExtension())) { paths = templatePaths; - } else if (JS_EXTENSION.equals(virtualFile.getExtension()) - || CSS_EXTENSION.equals(virtualFile.getExtension())) { + } else if (WEB_EXTENSIONS.contains(virtualFile.getExtension())) { paths = webPaths; } else { return fullPath.toString(); } - final int endIndex = getIndexOf(paths, fullPath, paths[++index]); - final int offset = paths[index].length(); + try { + final int endIndex = getIndexOf(paths, fullPath, paths[++index]); + final int offset = paths[index].length(); - fullPath.replace(0, endIndex + offset, ""); + fullPath.replace(0, endIndex + offset, ""); - return moduleName + SEPARATOR + fullPath; + return moduleName + SEPARATOR + fullPath; + } catch (ArrayIndexOutOfBoundsException exception) { + return fullPath.toString(); + } } private int getIndexOf(final String[] paths, final StringBuilder fullPath, final String path) {