16
16
import com .magento .idea .magento2plugin .indexes .ModuleIndex ;
17
17
import com .magento .idea .magento2plugin .magento .files .ComposerJson ;
18
18
import com .magento .idea .magento2plugin .util .CamelCaseToHyphen ;
19
+ import com .intellij .openapi .util .Pair ;
19
20
import org .jetbrains .annotations .NotNull ;
20
21
import java .io .FileNotFoundException ;
21
22
import java .io .FileReader ;
@@ -82,20 +83,24 @@ private String getDependenciesString(List dependenciesList) {
82
83
String result = "" ;
83
84
Object [] dependencies = dependenciesList .toArray ();
84
85
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 ) {
86
88
result = result .concat ("\n " );
87
89
} else {
88
90
result = result .concat (",\n " );
89
91
}
90
92
93
+ if (noDependency ) {
94
+ return result ;
95
+ }
96
+
91
97
for (int i = 0 ; i < dependencies .length ; i ++) {
92
98
String dependency = dependencies [i ].toString ();
99
+ Pair <String , String > dependencyData = getDependencyData (dependency );
93
100
result = result .concat ("\" " );
94
- result = result .concat (
95
- camelCaseToHyphen .convert (dependency ).replace ("_-" , "/" )
96
- );
101
+ result = result .concat (dependencyData .getFirst ());
97
102
result = result .concat ("\" " );
98
- result = result .concat (": \" " + getDependencyVersion ( dependency ) + "\" " );
103
+ result = result .concat (": \" " + dependencyData . getSecond ( ) + "\" " );
99
104
100
105
if (dependencies .length != (i + 1 )) {
101
106
result = result .concat ("," );
@@ -107,26 +112,32 @@ private String getDependenciesString(List dependenciesList) {
107
112
return result ;
108
113
}
109
114
110
- private String getDependencyVersion (String dependency ) {
115
+ private Pair < String , String > getDependencyData (String dependency ) {
111
116
String version = "*" ;
117
+ String moduleName = camelCaseToHyphen .convert (dependency ).replace ("_-" , "/" );
112
118
try {
113
119
VirtualFile virtualFile = moduleIndex .getModuleDirectoryByModuleName (dependency )
114
120
.findFile (ComposerJson .FILE_NAME )
115
121
.getVirtualFile ();
116
122
if (virtualFile .exists ()) {
117
123
JsonElement jsonElement = new JsonParser ().parse (new FileReader (virtualFile .getPath ()));
118
124
JsonElement versionJsonElement = jsonElement .getAsJsonObject ().get ("version" );
125
+ JsonElement nameJsonElement = jsonElement .getAsJsonObject ().get ("name" );
119
126
if (versionJsonElement != null ) {
120
127
version = versionJsonElement .getAsString ();
121
128
int minorVersionSeparator = version .lastIndexOf ("." );
122
129
version = new StringBuilder (version )
123
130
.replace (minorVersionSeparator + 1 , version .length (),"*" )
124
131
.toString ();
125
132
}
133
+ if (nameJsonElement != null ) {
134
+ moduleName = nameJsonElement .getAsString ();
135
+ }
126
136
}
127
137
} catch (FileNotFoundException e ) {
128
138
// It's fine
129
139
}
130
- return version ;
140
+
141
+ return Pair .create (moduleName , version );
131
142
}
132
143
}
0 commit comments