Skip to content

Commit 6228b90

Browse files
1023: Added support of the theme component
1 parent 667f86b commit 6228b90

File tree

7 files changed

+192
-181
lines changed

7 files changed

+192
-181
lines changed

src/com/magento/idea/magento2plugin/magento/packages/ComponentType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
@SuppressWarnings({"PMD.FieldNamingConventions"})
1111
public enum ComponentType {
1212
module,
13-
theme;
13+
theme,
14+
library;
1415

1516
/**
1617
* Get component type by value.

src/com/magento/idea/magento2uct/execution/GenerateUctReportCommand.java

Lines changed: 20 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
import com.magento.idea.magento2uct.execution.process.OutputWrapper;
2727
import com.magento.idea.magento2uct.execution.scanner.ModuleFilesScanner;
2828
import com.magento.idea.magento2uct.execution.scanner.ModuleScanner;
29-
import com.magento.idea.magento2uct.execution.scanner.ThemeFilesScanner;
30-
import com.magento.idea.magento2uct.execution.scanner.ThemeScanner;
3129
import com.magento.idea.magento2uct.execution.scanner.data.ComponentData;
3230
import com.magento.idea.magento2uct.execution.scanner.filter.ExcludeMagentoBundledFilter;
3331
import com.magento.idea.magento2uct.inspections.UctInspectionManager;
@@ -37,6 +35,7 @@
3735
import com.magento.idea.magento2uct.util.inspection.FilterDescriptorResultsUtil;
3836
import com.magento.idea.magento2uct.util.inspection.SortDescriptorResultsUtil;
3937
import java.nio.file.Paths;
38+
import java.util.ArrayList;
4039
import java.util.List;
4140
import org.jetbrains.annotations.NotNull;
4241
import org.jetbrains.annotations.Nullable;
@@ -82,8 +81,7 @@ public void processTerminated(final @NotNull ProcessEvent event) {
8281
@SuppressWarnings({"PMD.ExcessiveMethodLength", "PMD.AvoidInstantiatingObjectsInLoops"})
8382
public void execute() {
8483
output.write("Upgrade compatibility tool\n");
85-
final PsiDirectory rootDirectory = getTargetPsiDirectory();
86-
final PsiDirectory additionalDirectory = getAdditionalTargetPsiDirectory();
84+
final PsiDirectory rootDirectory = getTargetPsiDirectory(settingsService.getModulePath());
8785

8886
if (rootDirectory == null) {
8987
output.print(
@@ -92,8 +90,21 @@ public void execute() {
9290
process.destroyProcess();
9391
return;
9492
}
93+
final List<PsiDirectory> directoriesToScan = new ArrayList<>();
94+
directoriesToScan.add(rootDirectory);
95+
96+
if (settingsService.getHasAdditionalPath()) {
97+
final PsiDirectory additionalDirectory = getTargetPsiDirectory(
98+
settingsService.getAdditionalPath()
99+
);
100+
101+
if (additionalDirectory != null) {
102+
directoriesToScan.add(additionalDirectory);
103+
}
104+
}
105+
95106
final ModuleScanner scanner = new ModuleScanner(
96-
rootDirectory,
107+
directoriesToScan,
97108
new ExcludeMagentoBundledFilter()
98109
);
99110
final Summary summary = new Summary(
@@ -102,10 +113,6 @@ public void execute() {
102113
);
103114
final ReportBuilder reportBuilder = new ReportBuilder(project);
104115
final UctReportOutputUtil outputUtil = new UctReportOutputUtil(output);
105-
final ThemeScanner themeScanner = new ThemeScanner(
106-
additionalDirectory,
107-
new ExcludeMagentoBundledFilter()
108-
);
109116

110117
ApplicationManager.getApplication().executeOnPooledThread(() -> {
111118
ApplicationManager.getApplication().runReadAction(() -> {
@@ -159,58 +166,9 @@ public void execute() {
159166
}
160167
}
161168
}
162-
for (final ComponentData themeComponentData: themeScanner) {
163-
if (process.isProcessTerminated()) {
164-
return;
165-
}
166-
boolean isThemeHeaderPrinted = false;
167-
168-
for (final PsiFile psiFile : new ThemeFilesScanner(themeComponentData)) {
169-
if (!(psiFile instanceof PhpFile)) {
170-
continue;
171-
}
172-
173-
final String filename = psiFile.getVirtualFile().getPath();
174-
final UctInspectionManager inspectionManager = new UctInspectionManager(
175-
project
176-
);
177-
final UctProblemsHolder fileProblemsHolder = inspectionManager.run(psiFile);
178-
179-
if (fileProblemsHolder == null) {
180-
continue;
181-
}
182-
183-
if (fileProblemsHolder.hasResults()) {
184-
if (!isThemeHeaderPrinted) {
185-
outputUtil.printModuleName(themeComponentData.getName());
186-
isThemeHeaderPrinted = true;
187-
}
188-
outputUtil.printProblemFile(filename);
189-
}
190-
final List<ProblemDescriptor> problems = SortDescriptorResultsUtil.sort(
191-
FilterDescriptorResultsUtil.filter(fileProblemsHolder)
192-
);
193-
194-
for (final ProblemDescriptor descriptor : problems) {
195-
final SupportedIssue issue = fileProblemsHolder.getIssue(descriptor);
196-
197-
final String errorMessage = descriptor
198-
.getDescriptionTemplate()
199-
.substring(6)
200-
.trim();
201-
summary.addToSummary(issue.getLevel());
202-
reportBuilder.addIssue(
203-
descriptor.getLineNumber() + 1,
204-
filename,
205-
errorMessage,
206-
issue
207-
);
208-
outputUtil.printIssue(descriptor, issue.getCode());
209-
}
210-
}
211-
}
212169
summary.trackProcessFinished();
213170
summary.setProcessedModules(scanner.getModuleCount());
171+
summary.setProcessedThemes(scanner.getThemeCount());
214172
outputUtil.printSummary(summary);
215173

216174
if (summary.getProcessedModules() == 0) {
@@ -242,11 +200,11 @@ public void execute() {
242200
/**
243201
* Get target psi directory.
244202
*
203+
* @param targetDirPath String
204+
*
245205
* @return PsiDirectory
246206
*/
247-
private @Nullable PsiDirectory getTargetPsiDirectory() {
248-
final String targetDirPath = settingsService.getModulePath();
249-
207+
private @Nullable PsiDirectory getTargetPsiDirectory(final String targetDirPath) {
250208
if (targetDirPath == null) {
251209
return null;
252210
}
@@ -258,25 +216,4 @@ public void execute() {
258216

259217
return PsiManager.getInstance(project).findDirectory(targetDirVirtualFile);
260218
}
261-
262-
/**
263-
* Get additional target psi directory.
264-
*
265-
* @return PsiDirectory
266-
*/
267-
private @Nullable PsiDirectory getAdditionalTargetPsiDirectory() {
268-
final String additionalTargetDirPath = settingsService.getAdditionalPath();
269-
270-
if (additionalTargetDirPath == null) {
271-
return null;
272-
}
273-
final VirtualFile targetDirVirtualFile
274-
= VfsUtil.findFile(Paths.get(additionalTargetDirPath), false);
275-
276-
if (targetDirVirtualFile == null) {
277-
return null;
278-
}
279-
280-
return PsiManager.getInstance(project).findDirectory(targetDirVirtualFile);
281-
}
282219
}

src/com/magento/idea/magento2uct/execution/output/Summary.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class Summary {
1818
private final SupportedVersion installedVersion;
1919
private final SupportedVersion targetVersion;
2020
private int processedModules;
21+
private int processedThemes;
2122
private long processStartedTime;
2223
private long processEndedTime;
2324
private int phpWarnings;
@@ -74,6 +75,24 @@ public void setProcessedModules(final int processedModules) {
7475
this.processedModules = processedModules;
7576
}
7677

78+
/**
79+
* Get processed theme qty.
80+
*
81+
* @return int
82+
*/
83+
public int getProcessedThemes() {
84+
return processedThemes;
85+
}
86+
87+
/**
88+
* Set processed theme qty.
89+
*
90+
* @param processedThemes int
91+
*/
92+
public void setProcessedThemes(final int processedThemes) {
93+
this.processedThemes = processedThemes;
94+
}
95+
7796
/**
7897
* Track time before process is started.
7998
*/

src/com/magento/idea/magento2uct/execution/output/UctReportOutputUtil.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public void printSummary(final Summary summary) {
9595
summaryMap.put("Adobe Commerce version", summary.getTargetVersion());
9696
summaryMap.put("Running time", summary.getProcessRunningTime());
9797
summaryMap.put("Checked modules", String.valueOf(summary.getProcessedModules()));
98+
summaryMap.put("Checked themes", String.valueOf(summary.getProcessedThemes()));
9899
summaryMap.put("Total warnings found", String.valueOf(summary.getPhpWarnings()));
99100
summaryMap.put("Total errors found", String.valueOf(summary.getPhpErrors()));
100101
summaryMap.put("Total critical errors found",

0 commit comments

Comments
 (0)