From 2cff8f01a0a2b095d4dfc6f5bbbb9295bf0ff177 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:01:30 +0100 Subject: [PATCH 1/8] 645: Code refactoring --- .../stubs/indexes/js/RequireJsIndex.java | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index 4fd74fc9f..906c37a70 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -2,36 +2,46 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + package com.magento.idea.magento2plugin.stubs.indexes.js; import com.intellij.lang.javascript.JavaScriptFileType; -import com.intellij.lang.javascript.psi.*; +import com.intellij.lang.javascript.psi.JSExpression; +import com.intellij.lang.javascript.psi.JSFile; +import com.intellij.lang.javascript.psi.JSObjectLiteralExpression; +import com.intellij.lang.javascript.psi.JSProperty; +import com.intellij.lang.javascript.psi.JSVarStatement; +import com.intellij.lang.javascript.psi.JSVariable; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.util.indexing.*; +import com.intellij.util.indexing.DataIndexer; +import com.intellij.util.indexing.FileBasedIndex; +import com.intellij.util.indexing.FileBasedIndexExtension; +import com.intellij.util.indexing.FileContent; +import com.intellij.util.indexing.ID; import com.intellij.util.io.DataExternalizer; import com.intellij.util.io.EnumeratorStringDescriptor; import com.intellij.util.io.KeyDescriptor; -import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; +import org.jetbrains.annotations.NotNull; public class RequireJsIndex extends FileBasedIndexExtension { - public static final ID KEY = - ID.create("com.magento.idea.magento2plugin.stubs.indexes.require_js"); - @NotNull + public static final ID KEY = ID.create( + "com.magento.idea.magento2plugin.stubs.indexes.require_js" + ); + @Override - public ID getName() { + public @NotNull ID getName() { return KEY; } - @NotNull @Override - public DataIndexer getIndexer() { + public @NotNull DataIndexer getIndexer() { return inputData -> { Map map = new HashMap<>(); - JSFile jsFile = (JSFile)inputData.getPsiFile(); + JSFile jsFile = (JSFile) inputData.getPsiFile(); JSVarStatement jsVarStatement = PsiTreeUtil.getChildOfType(jsFile, JSVarStatement.class); if (jsVarStatement == null) { @@ -98,17 +108,16 @@ private void parseConfigMap(Map map, JSObjectLiteralExpression c } } - @NotNull @Override - public KeyDescriptor getKeyDescriptor() { + public @NotNull KeyDescriptor getKeyDescriptor() { return new EnumeratorStringDescriptor(); } - @NotNull @Override - public FileBasedIndex.InputFilter getInputFilter() { + public @NotNull FileBasedIndex.InputFilter getInputFilter() { return virtualFile -> ( - virtualFile.getFileType().equals(JavaScriptFileType.INSTANCE) && virtualFile.getName().equals("requirejs-config.js") + virtualFile.getFileType().equals(JavaScriptFileType.INSTANCE) + && virtualFile.getName().equals("requirejs-config.js") ); } @@ -122,8 +131,7 @@ public int getVersion() { return 1; } - @NotNull - public DataExternalizer getValueExternalizer() { + public @NotNull DataExternalizer getValueExternalizer() { return EnumeratorStringDescriptor.INSTANCE; } } From 0918b7ab9d6730fcfec18240856b3adc150d3e87 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:02:31 +0100 Subject: [PATCH 2/8] 645: Fixed method could be final --- .../idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index 906c37a70..b7633af79 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -81,7 +81,10 @@ public class RequireJsIndex extends FileBasedIndexExtension { }; } - private void parseConfigMap(Map map, JSObjectLiteralExpression config) { + private void parseConfigMap( + final Map map, + final JSObjectLiteralExpression config + ) { JSProperty configMap = config.findProperty("map"); if (configMap == null) { return; From 67e9fc76b63c1f918314a437b1dbd9438843687e Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:04:17 +0100 Subject: [PATCH 3/8] 645: Fixed local variable could be final --- .../stubs/indexes/js/RequireJsIndex.java | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index b7633af79..88c3a6aa4 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -40,37 +40,37 @@ public class RequireJsIndex extends FileBasedIndexExtension { @Override public @NotNull DataIndexer getIndexer() { return inputData -> { - Map map = new HashMap<>(); - JSFile jsFile = (JSFile) inputData.getPsiFile(); + final Map map = new HashMap<>(); + final JSFile jsFile = (JSFile) inputData.getPsiFile(); - JSVarStatement jsVarStatement = PsiTreeUtil.getChildOfType(jsFile, JSVarStatement.class); + final JSVarStatement jsVarStatement = PsiTreeUtil.getChildOfType(jsFile, JSVarStatement.class); if (jsVarStatement == null) { return map; } - JSVariable[] jsVariableList = jsVarStatement.getVariables(); - for (JSVariable jsVariable : jsVariableList) { - String name = jsVariable.getName(); + final JSVariable[] jsVariableList = jsVarStatement.getVariables(); + for (final JSVariable jsVariable : jsVariableList) { + final String name = jsVariable.getName(); if (name.equals("config")) { - JSObjectLiteralExpression config = PsiTreeUtil.getChildOfType(jsVariable, JSObjectLiteralExpression.class); + final JSObjectLiteralExpression config = PsiTreeUtil.getChildOfType(jsVariable, JSObjectLiteralExpression.class); if (config == null) { return map; } parseConfigMap(map, config); - JSProperty pathsMap = config.findProperty("paths"); + final JSProperty pathsMap = config.findProperty("paths"); if (pathsMap == null) { return map; } - JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil.getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); - for (JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { - JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); - for (JSProperty mapping : allConfigs) { - String nameConfig = mapping.getName(); - JSExpression value = mapping.getValue(); + final JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil.getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); + for (final JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { + final JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); + for (final JSProperty mapping : allConfigs) { + final String nameConfig = mapping.getName(); + final JSExpression value = mapping.getValue(); if (value == null) { continue; } - String valueConfig = value.getText(); + final String valueConfig = value.getText(); map.put(nameConfig, valueConfig); } } @@ -85,26 +85,26 @@ private void parseConfigMap( final Map map, final JSObjectLiteralExpression config ) { - JSProperty configMap = config.findProperty("map"); + final JSProperty configMap = config.findProperty("map"); if (configMap == null) { return; } - JSObjectLiteralExpression[] configGroupsWrappers = PsiTreeUtil.getChildrenOfType(configMap, JSObjectLiteralExpression.class); - for (JSObjectLiteralExpression configGroupsWrapper : configGroupsWrappers) { - PsiElement[] configGroups = configGroupsWrapper.getChildren(); + final JSObjectLiteralExpression[] configGroupsWrappers = PsiTreeUtil.getChildrenOfType(configMap, JSObjectLiteralExpression.class); + for (final JSObjectLiteralExpression configGroupsWrapper : configGroupsWrappers) { + final PsiElement[] configGroups = configGroupsWrapper.getChildren(); - for (PsiElement configGroup : configGroups) { - JSObjectLiteralExpression mappingWrapper = PsiTreeUtil.getChildOfType(configGroup, JSObjectLiteralExpression.class); - JSProperty[] allConfigs = mappingWrapper.getProperties(); + for (final PsiElement configGroup : configGroups) { + final JSObjectLiteralExpression mappingWrapper = PsiTreeUtil.getChildOfType(configGroup, JSObjectLiteralExpression.class); + final JSProperty[] allConfigs = mappingWrapper.getProperties(); - for (JSProperty mapping : allConfigs) { - String nameConfig = mapping.getName(); - JSExpression value = mapping.getValue(); + for (final JSProperty mapping : allConfigs) { + final String nameConfig = mapping.getName(); + final JSExpression value = mapping.getValue(); if (value == null) { continue; } - String valueConfig = value.getText(); + final String valueConfig = value.getText(); map.put(nameConfig, valueConfig); } } From 58f32f9f1ae0803741118faeee02399b6afd6d49 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:06:50 +0100 Subject: [PATCH 4/8] 645: Code refactoring --- .../stubs/indexes/js/RequireJsIndex.java | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index 88c3a6aa4..79fdc1a22 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -43,30 +43,45 @@ public class RequireJsIndex extends FileBasedIndexExtension { final Map map = new HashMap<>(); final JSFile jsFile = (JSFile) inputData.getPsiFile(); - final JSVarStatement jsVarStatement = PsiTreeUtil.getChildOfType(jsFile, JSVarStatement.class); + final JSVarStatement jsVarStatement = PsiTreeUtil.getChildOfType( + jsFile, + JSVarStatement.class + ); + if (jsVarStatement == null) { return map; } final JSVariable[] jsVariableList = jsVarStatement.getVariables(); + for (final JSVariable jsVariable : jsVariableList) { final String name = jsVariable.getName(); + if (name.equals("config")) { - final JSObjectLiteralExpression config = PsiTreeUtil.getChildOfType(jsVariable, JSObjectLiteralExpression.class); + final JSObjectLiteralExpression config = PsiTreeUtil.getChildOfType( + jsVariable, + JSObjectLiteralExpression.class + ); + if (config == null) { return map; } parseConfigMap(map, config); final JSProperty pathsMap = config.findProperty("paths"); + if (pathsMap == null) { return map; } - final JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil.getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); + final JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil + .getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); + for (final JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { final JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); + for (final JSProperty mapping : allConfigs) { final String nameConfig = mapping.getName(); final JSExpression value = mapping.getValue(); + if (value == null) { continue; } @@ -86,21 +101,29 @@ private void parseConfigMap( final JSObjectLiteralExpression config ) { final JSProperty configMap = config.findProperty("map"); + if (configMap == null) { return; } - final JSObjectLiteralExpression[] configGroupsWrappers = PsiTreeUtil.getChildrenOfType(configMap, JSObjectLiteralExpression.class); + final JSObjectLiteralExpression[] configGroupsWrappers = PsiTreeUtil.getChildrenOfType( + configMap, + JSObjectLiteralExpression.class + ); for (final JSObjectLiteralExpression configGroupsWrapper : configGroupsWrappers) { final PsiElement[] configGroups = configGroupsWrapper.getChildren(); for (final PsiElement configGroup : configGroups) { - final JSObjectLiteralExpression mappingWrapper = PsiTreeUtil.getChildOfType(configGroup, JSObjectLiteralExpression.class); + final JSObjectLiteralExpression mappingWrapper = PsiTreeUtil.getChildOfType( + configGroup, + JSObjectLiteralExpression.class + ); final JSProperty[] allConfigs = mappingWrapper.getProperties(); for (final JSProperty mapping : allConfigs) { final String nameConfig = mapping.getName(); final JSExpression value = mapping.getValue(); + if (value == null) { continue; } @@ -118,10 +141,9 @@ private void parseConfigMap( @Override public @NotNull FileBasedIndex.InputFilter getInputFilter() { - return virtualFile -> ( + return virtualFile -> virtualFile.getFileType().equals(JavaScriptFileType.INSTANCE) - && virtualFile.getName().equals("requirejs-config.js") - ); + && virtualFile.getName().equals("requirejs-config.js"); } @Override @@ -134,6 +156,7 @@ public int getVersion() { return 1; } + @Override public @NotNull DataExternalizer getValueExternalizer() { return EnumeratorStringDescriptor.INSTANCE; } From b206366b724de9d7d81211047baaeb43f6cad768 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:07:54 +0100 Subject: [PATCH 5/8] 645: Fixed LiteralsFirstInComparisons --- .../idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index 79fdc1a22..09581ca35 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -56,7 +56,7 @@ public class RequireJsIndex extends FileBasedIndexExtension { for (final JSVariable jsVariable : jsVariableList) { final String name = jsVariable.getName(); - if (name.equals("config")) { + if ("config".equals(name)) { final JSObjectLiteralExpression config = PsiTreeUtil.getChildOfType( jsVariable, JSObjectLiteralExpression.class @@ -143,7 +143,7 @@ private void parseConfigMap( public @NotNull FileBasedIndex.InputFilter getInputFilter() { return virtualFile -> virtualFile.getFileType().equals(JavaScriptFileType.INSTANCE) - && virtualFile.getName().equals("requirejs-config.js"); + && "requirejs-config.js".equals(virtualFile.getName()); } @Override From 548359f47676ff428055e5f356382eebb41c18e1 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:20:07 +0100 Subject: [PATCH 6/8] 645: Code refactoring --- .../stubs/indexes/js/RequireJsIndex.java | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index 09581ca35..ff9a27fe1 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -66,29 +66,7 @@ public class RequireJsIndex extends FileBasedIndexExtension { return map; } parseConfigMap(map, config); - - final JSProperty pathsMap = config.findProperty("paths"); - - if (pathsMap == null) { - return map; - } - final JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil - .getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); - - for (final JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { - final JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); - - for (final JSProperty mapping : allConfigs) { - final String nameConfig = mapping.getName(); - final JSExpression value = mapping.getValue(); - - if (value == null) { - continue; - } - final String valueConfig = value.getText(); - map.put(nameConfig, valueConfig); - } - } + parseConfigPaths(map, config); } } @@ -105,11 +83,11 @@ private void parseConfigMap( if (configMap == null) { return; } - final JSObjectLiteralExpression[] configGroupsWrappers = PsiTreeUtil.getChildrenOfType( configMap, JSObjectLiteralExpression.class ); + for (final JSObjectLiteralExpression configGroupsWrapper : configGroupsWrappers) { final PsiElement[] configGroups = configGroupsWrapper.getChildren(); @@ -134,6 +112,34 @@ private void parseConfigMap( } } + private void parseConfigPaths( + final Map map, + final JSObjectLiteralExpression config + ) { + final JSProperty pathsMap = config.findProperty("paths"); + + if (pathsMap == null) { + return; + } + final JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil + .getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); + + for (final JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { + final JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); + + for (final JSProperty mapping : allConfigs) { + final String nameConfig = mapping.getName(); + final JSExpression value = mapping.getValue(); + + if (value == null) { + continue; + } + final String valueConfig = value.getText(); + map.put(nameConfig, valueConfig); + } + } + } + @Override public @NotNull KeyDescriptor getKeyDescriptor() { return new EnumeratorStringDescriptor(); From 2492c2647bf608848210e1bff3dc9c5777ad25a7 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:22:36 +0100 Subject: [PATCH 7/8] 645: Fixed bug --- .../stubs/indexes/js/RequireJsIndex.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index ff9a27fe1..de2c0adf5 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -87,6 +87,9 @@ private void parseConfigMap( configMap, JSObjectLiteralExpression.class ); + if (configGroupsWrappers == null) { + return; + } for (final JSObjectLiteralExpression configGroupsWrapper : configGroupsWrappers) { final PsiElement[] configGroups = configGroupsWrapper.getChildren(); @@ -96,6 +99,10 @@ private void parseConfigMap( configGroup, JSObjectLiteralExpression.class ); + + if (mappingWrapper == null) { + continue; + } final JSProperty[] allConfigs = mappingWrapper.getProperties(); for (final JSProperty mapping : allConfigs) { @@ -124,6 +131,10 @@ private void parseConfigPaths( final JSObjectLiteralExpression[] pathGroupsWrappers = PsiTreeUtil .getChildrenOfType(pathsMap, JSObjectLiteralExpression.class); + if (pathGroupsWrappers == null) { + return; + } + for (final JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { final JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); From 83743866f678cbd4de265cbe252503e7eb4a755e Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Tue, 30 Nov 2021 14:26:39 +0100 Subject: [PATCH 8/8] 645: Code refactoring --- .../stubs/indexes/js/RequireJsIndex.java | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java index de2c0adf5..065e68709 100644 --- a/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java +++ b/src/com/magento/idea/magento2plugin/stubs/indexes/js/RequireJsIndex.java @@ -103,18 +103,7 @@ private void parseConfigMap( if (mappingWrapper == null) { continue; } - final JSProperty[] allConfigs = mappingWrapper.getProperties(); - - for (final JSProperty mapping : allConfigs) { - final String nameConfig = mapping.getName(); - final JSExpression value = mapping.getValue(); - - if (value == null) { - continue; - } - final String valueConfig = value.getText(); - map.put(nameConfig, valueConfig); - } + processObjectProperties(map, mappingWrapper.getProperties()); } } } @@ -136,18 +125,23 @@ private void parseConfigPaths( } for (final JSObjectLiteralExpression pathGroupsWrapper : pathGroupsWrappers) { - final JSProperty[] allConfigs = pathGroupsWrapper.getProperties(); + processObjectProperties(map, pathGroupsWrapper.getProperties()); + } + } - for (final JSProperty mapping : allConfigs) { - final String nameConfig = mapping.getName(); - final JSExpression value = mapping.getValue(); + private void processObjectProperties( + final Map map, + final JSProperty... allConfigs + ) { + for (final JSProperty mapping : allConfigs) { + final String nameConfig = mapping.getName(); + final JSExpression value = mapping.getValue(); - if (value == null) { - continue; - } - final String valueConfig = value.getText(); - map.put(nameConfig, valueConfig); + if (value == null) { + continue; } + final String valueConfig = value.getText(); + map.put(nameConfig, valueConfig); } }