1616import com .magento .idea .magento2plugin .indexes .ModuleIndex ;
1717import com .magento .idea .magento2plugin .magento .files .ComposerJson ;
1818import com .magento .idea .magento2plugin .util .CamelCaseToHyphen ;
19+ import com .intellij .openapi .util .Pair ;
1920import org .jetbrains .annotations .NotNull ;
2021import java .io .FileNotFoundException ;
2122import java .io .FileReader ;
@@ -82,20 +83,24 @@ private String getDependenciesString(List dependenciesList) {
8283 String result = "" ;
8384 Object [] dependencies = dependenciesList .toArray ();
8485 result = result .concat (ComposerJson .DEFAULT_DEPENDENCY );
85- if (dependencies .length == 0 ) {
86+ boolean noDependency = dependencies .length == 1 && dependencies [0 ].equals (ComposerJson .NO_DEPENDENCY_LABEL );
87+ if (dependencies .length == 0 || noDependency ) {
8688 result = result .concat ("\n " );
8789 } else {
8890 result = result .concat (",\n " );
8991 }
9092
93+ if (noDependency ) {
94+ return result ;
95+ }
96+
9197 for (int i = 0 ; i < dependencies .length ; i ++) {
9298 String dependency = dependencies [i ].toString ();
99+ Pair <String , String > dependencyData = getDependencyData (dependency );
93100 result = result .concat ("\" " );
94- result = result .concat (
95- camelCaseToHyphen .convert (dependency ).replace ("_-" , "/" )
96- );
101+ result = result .concat (dependencyData .getFirst ());
97102 result = result .concat ("\" " );
98- result = result .concat (": \" " + getDependencyVersion ( dependency ) + "\" " );
103+ result = result .concat (": \" " + dependencyData . getSecond ( ) + "\" " );
99104
100105 if (dependencies .length != (i + 1 )) {
101106 result = result .concat ("," );
@@ -107,26 +112,32 @@ private String getDependenciesString(List dependenciesList) {
107112 return result ;
108113 }
109114
110- private String getDependencyVersion (String dependency ) {
115+ private Pair < String , String > getDependencyData (String dependency ) {
111116 String version = "*" ;
117+ String moduleName = camelCaseToHyphen .convert (dependency ).replace ("_-" , "/" );
112118 try {
113119 VirtualFile virtualFile = moduleIndex .getModuleDirectoryByModuleName (dependency )
114120 .findFile (ComposerJson .FILE_NAME )
115121 .getVirtualFile ();
116122 if (virtualFile .exists ()) {
117123 JsonElement jsonElement = new JsonParser ().parse (new FileReader (virtualFile .getPath ()));
118124 JsonElement versionJsonElement = jsonElement .getAsJsonObject ().get ("version" );
125+ JsonElement nameJsonElement = jsonElement .getAsJsonObject ().get ("name" );
119126 if (versionJsonElement != null ) {
120127 version = versionJsonElement .getAsString ();
121128 int minorVersionSeparator = version .lastIndexOf ("." );
122129 version = new StringBuilder (version )
123130 .replace (minorVersionSeparator + 1 , version .length (),"*" )
124131 .toString ();
125132 }
133+ if (nameJsonElement != null ) {
134+ moduleName = nameJsonElement .getAsString ();
135+ }
126136 }
127137 } catch (FileNotFoundException e ) {
128138 // It's fine
129139 }
130- return version ;
140+
141+ return Pair .create (moduleName , version );
131142 }
132143}
0 commit comments