Skip to content

Commit 72e21fb

Browse files
authored
Merge pull request #786 from bohdan-harniuk/uct-sort-errors-by-lines
UCT-768: Sort errors by lines
2 parents ef2a056 + 485a5b4 commit 72e21fb

File tree

7 files changed

+61
-6
lines changed

7 files changed

+61
-6
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.magento.idea.magento2uct.inspections.UctProblemsHolder;
3333
import com.magento.idea.magento2uct.packages.SupportedIssue;
3434
import com.magento.idea.magento2uct.settings.UctSettingsService;
35+
import com.magento.idea.magento2uct.util.inspection.SortDescriptorResultsUtil;
3536
import java.nio.file.Paths;
3637
import org.jetbrains.annotations.NotNull;
3738
import org.jetbrains.annotations.Nullable;
@@ -129,7 +130,9 @@ public void execute() {
129130
}
130131

131132
for (final ProblemDescriptor descriptor
132-
: fileProblemsHolder.getResults()) {
133+
: SortDescriptorResultsUtil.sort(
134+
fileProblemsHolder.getResults()
135+
)) {
133136
final Integer code = fileProblemsHolder.getErrorCodeForDescriptor(
134137
descriptor
135138
);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public Summary(
4444
* @return String
4545
*/
4646
public String getInstalledVersion() {
47-
return installedVersion == null ? "" : installedVersion.getVersion();
47+
return installedVersion == null ? "Less than 2.3.0" : installedVersion.getVersion();
4848
}
4949

5050
/**

src/com/magento/idea/magento2uct/inspections/UctInspectionManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,10 @@ public UctInspectionManager(final @NotNull Project project) {
6262
psiFile,
6363
false
6464
);
65+
final List<PsiElementVisitor> visitors = SupportedIssue.getVisitors(problemsHolder);
6566

6667
for (final PsiElement element : collectElements(phpClass)) {
67-
for (final PsiElementVisitor visitor : SupportedIssue.getVisitors(problemsHolder)) {
68+
for (final PsiElementVisitor visitor : visitors) {
6869
element.accept(visitor);
6970
}
7071
}

src/com/magento/idea/magento2uct/settings/UctSettingsService.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,17 @@ public void setCurrentVersion(final @Nullable SupportedVersion version) {
161161
return SupportedVersion.getVersion(currentVersion);
162162
}
163163

164+
/**
165+
* Get current version or default version instead.
166+
*
167+
* @return SupportedVersion
168+
*/
169+
public @NotNull SupportedVersion getCurrentVersionOrDefault() {
170+
final SupportedVersion currentVersion = getCurrentVersion();
171+
172+
return currentVersion == null ? SupportedVersion.V230 : currentVersion;
173+
}
174+
164175
/**
165176
* Set target version.
166177
*

src/com/magento/idea/magento2uct/ui/ConfigurationDialog.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,14 @@ private void onOK() {
127127
return;
128128
}
129129
settingsService.setEnabled(enable.isSelected());
130-
final String currentVersionValue = currentVersion.getSelectedItem().toString();
130+
131+
final ComboBoxItemData currentVersionItemData =
132+
(ComboBoxItemData) currentVersion.getSelectedItem();
133+
String currentVersionValue = "";
134+
135+
if (currentVersionItemData != null) {
136+
currentVersionValue = currentVersionItemData.getKey();
137+
}
131138

132139
settingsService.setCurrentVersion(
133140
currentVersionValue.isEmpty()
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2uct.util.inspection;
7+
8+
import com.intellij.codeInspection.ProblemDescriptor;
9+
import java.util.Comparator;
10+
import java.util.LinkedList;
11+
import java.util.List;
12+
13+
public final class SortDescriptorResultsUtil {
14+
15+
private SortDescriptorResultsUtil() {
16+
}
17+
18+
/**
19+
* Get problems sorted by its lines.
20+
*
21+
* @param problems List[ProblemDescriptor]
22+
*
23+
* @return List[ProblemDescriptor]
24+
*/
25+
public static List<ProblemDescriptor> sort(final List<ProblemDescriptor> problems) {
26+
if (problems.isEmpty()) {
27+
return problems;
28+
}
29+
problems.sort(Comparator.comparingInt(ProblemDescriptor::getLineNumber));
30+
31+
return new LinkedList<>(problems);
32+
}
33+
}

src/com/magento/idea/magento2uct/versioning/VersionStateManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static synchronized VersionStateManager getInstance(
4242

4343
if (instance == null
4444
|| !instance.isValidFor(settingsService.shouldIgnoreCurrentVersion(),
45-
settingsService.getCurrentVersion(),
45+
settingsService.getCurrentVersionOrDefault(),
4646
settingsService.getTargetVersion()
4747
)) {
4848
instance = new VersionStateManager(project);
@@ -111,7 +111,7 @@ public boolean isApi(final @NotNull String fqn) {
111111
private VersionStateManager(final @NotNull Project project) {
112112
final UctSettingsService settingsService = UctSettingsService.getInstance(project);
113113
isSetIgnoreFlag = settingsService.shouldIgnoreCurrentVersion();
114-
currentVersion = settingsService.getCurrentVersion();
114+
currentVersion = settingsService.getCurrentVersionOrDefault();
115115
targetVersion = settingsService.getTargetVersion();
116116
versionsToLoad = new LinkedList<>();
117117

0 commit comments

Comments
 (0)