Skip to content

Commit 72f0f9b

Browse files
authored
Merge pull request #2641 from vitaliyboykocontributor/deprecated-stuff-cleanup
Replace `THashMap` and `THashSet` with `HashMap` and `HashSet`, updat…
2 parents b07d4c4 + f2e28a5 commit 72f0f9b

File tree

543 files changed

+677
-568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

543 files changed

+677
-568
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,5 @@ out
3838
build
3939
.intellijPlatform/*
4040
video/*
41-
intellij-test-project
41+
intellij-test-project
42+
.ai

src/main/java/com/magento/idea/magento2plugin/actions/comparator/CompareTemplateAction.java

Lines changed: 51 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.intellij.openapi.actionSystem.AnAction;
1313
import com.intellij.openapi.actionSystem.AnActionEvent;
1414
import com.intellij.openapi.actionSystem.PlatformDataKeys;
15+
import com.intellij.openapi.util.Pair;
1516
import com.intellij.openapi.project.Project;
1617
import com.intellij.openapi.vfs.VfsUtil;
1718
import com.intellij.openapi.vfs.VirtualFile;
@@ -35,8 +36,6 @@ public class CompareTemplateAction extends AnAction {
3536
public static final String ACTION_DESCRIPTION = "The Magento 2 overridden template comparing";
3637

3738
private static final String PHTML_EXTENSION = "phtml";
38-
protected VirtualFile selectedFile;
39-
protected VirtualFile originalFile;
4039

4140
/**
4241
* Compare template action constructor.
@@ -54,90 +53,89 @@ public CompareTemplateAction() {
5453
@SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"})
5554
public void update(final @NotNull AnActionEvent event) {
5655
setStatus(event, false);
57-
final Project project = event.getData(PlatformDataKeys.PROJECT);
56+
if (resolveComparisonFiles(event) != null) {
57+
this.setStatus(event, true);
58+
}
59+
}
5860

59-
if (project == null) {
61+
@Override
62+
public void actionPerformed(final @NotNull AnActionEvent event) {
63+
final Project project = event.getProject();
64+
final Pair<VirtualFile, VirtualFile> comparisonFiles = resolveComparisonFiles(event);
65+
66+
if (project == null || comparisonFiles == null) {
6067
return;
6168
}
69+
final DiffRequestChain chain = DiffRequestChainUtil.createMutableChain(
70+
project,
71+
comparisonFiles.getFirst(),
72+
comparisonFiles.getSecond()
73+
);
6274

63-
if (!Settings.isEnabled(project)) {
75+
if (chain == null) {
6476
return;
6577
}
78+
DiffManager.getInstance().showDiff(
79+
project,
80+
chain,
81+
DiffDialogHints.DEFAULT
82+
);
83+
}
84+
85+
private @Nullable String getOriginalModuleName(
86+
final @NotNull Project project,
87+
final @NotNull PsiFile psiFile
88+
) {
89+
final PsiDirectory directory = psiFile.getContainingDirectory();
90+
91+
return GetModuleNameByDirectoryUtil.execute(directory, project);
92+
}
93+
94+
private @Nullable Pair<VirtualFile, VirtualFile> resolveComparisonFiles(
95+
final @NotNull AnActionEvent event
96+
) {
97+
final Project project = event.getData(PlatformDataKeys.PROJECT);
98+
99+
if (project == null || !Settings.isEnabled(project)) {
100+
return null;
101+
}
66102
final PsiFile psiFile = event.getData(PlatformDataKeys.PSI_FILE);
67103

68104
if (psiFile == null) {
69-
return;
105+
return null;
70106
}
71107
final VirtualFile targetFileCandidate = psiFile.getVirtualFile();
72108

73-
if (targetFileCandidate == null) {
74-
return;
75-
}
76-
77-
if (!PHTML_EXTENSION.equals(targetFileCandidate.getExtension())) {
78-
return;
109+
if (targetFileCandidate == null || !PHTML_EXTENSION.equals(targetFileCandidate.getExtension())) {
110+
return null;
79111
}
80112
final Areas area = AreaResolverUtil.getForFileInCustomTheme(targetFileCandidate);
81113

82114
if (area == null) {
83-
return;
115+
return null;
84116
}
85117
final String originalModuleName = getOriginalModuleName(project, psiFile);
86118

87119
if (originalModuleName == null) {
88-
return;
120+
return null;
89121
}
90122
final PsiDirectory originalModuleDirectory =
91123
new ModuleIndex(project).getModuleDirectoryByModuleName(originalModuleName);
92124

93125
if (originalModuleDirectory == null) {
94-
return;
126+
return null;
95127
}
96128
final String originalFilePath = originalModuleDirectory.getVirtualFile().getPath()
97129
+ "/view/"
98130
+ area
99131
+ StringUtils.substringAfter(targetFileCandidate.getPath(), originalModuleName);
132+
final VirtualFile originalFile = VfsUtil.findFile(Path.of(originalFilePath), false);
100133

101-
final VirtualFile origFileCandidate = VfsUtil.findFile(Path.of(originalFilePath), false);
102-
103-
if (origFileCandidate == null) {
104-
return;
105-
}
106-
selectedFile = targetFileCandidate;
107-
originalFile = origFileCandidate;
108-
this.setStatus(event, true);
109-
}
110-
111-
@Override
112-
public void actionPerformed(final @NotNull AnActionEvent event) {
113-
final Project project = event.getProject();
114-
115-
if (project == null || selectedFile == null || originalFile == null) {
116-
return;
117-
}
118-
final DiffRequestChain chain = DiffRequestChainUtil.createMutableChain(
119-
project,
120-
selectedFile,
121-
originalFile
122-
);
123-
124-
if (chain == null) {
125-
return;
134+
if (originalFile == null) {
135+
return null;
126136
}
127-
DiffManager.getInstance().showDiff(
128-
project,
129-
chain,
130-
DiffDialogHints.DEFAULT
131-
);
132-
}
133-
134-
private @Nullable String getOriginalModuleName(
135-
final @NotNull Project project,
136-
final @NotNull PsiFile psiFile
137-
) {
138-
final PsiDirectory directory = psiFile.getContainingDirectory();
139137

140-
return GetModuleNameByDirectoryUtil.execute(directory, project);
138+
return Pair.create(targetFileCandidate, originalFile);
141139
}
142140

143141
private void setStatus(final AnActionEvent event, final boolean status) {

src/main/java/com/magento/idea/magento2plugin/actions/comparator/util/DiffRequestChainUtil.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import com.intellij.diff.DiffContentFactory;
99
import com.intellij.diff.DiffRequestFactory;
10-
import com.intellij.diff.actions.BlankDiffWindowUtil;
1110
import com.intellij.diff.actions.impl.MutableDiffRequestChain;
1211
import com.intellij.diff.contents.DiffContent;
1312
import com.intellij.diff.contents.DocumentContent;
@@ -43,12 +42,12 @@ private DiffRequestChainUtil() {}
4342
return null;
4443
}
4544

46-
final MutableDiffRequestChain chain = BlankDiffWindowUtil.createBlankDiffRequestChain(
45+
final MutableDiffRequestChain chain = new MutableDiffRequestChain(
4746
(DocumentContent) targetContent,
4847
(DocumentContent) baseContent,
49-
null
48+
project
5049
);
51-
chain.setWindowTitle(DiffRequestFactory.getInstance().getTitle(targetFile, baseFile));
50+
chain.setWindowTitle(DiffRequestFactory.getInstance().getTitleForComparison(targetFile, baseFile));
5251

5352
return chain;
5453
}

src/main/java/com/magento/idea/magento2plugin/actions/content/root/MarkDirectoryAsMagentoContentRot.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import com.magento.idea.magento2plugin.MagentoIcons;
2323
import com.magento.idea.magento2plugin.project.Settings;
2424
import com.magento.idea.magento2plugin.util.magento.MagentoPathUrlUtil;
25+
import java.net.URI;
2526
import java.net.MalformedURLException;
26-
import java.net.URL;
2727
import org.jetbrains.annotations.NotNull;
2828

2929
public class MarkDirectoryAsMagentoContentRot extends MarkRootActionBase {
@@ -51,8 +51,8 @@ protected void modifyRoots(
5151
settings.getMagentoFolders().removeIf(folder -> {
5252
final VirtualFile file;
5353
try {
54-
file = VfsUtil.findFileByURL(new URL(folder));
55-
} catch (MalformedURLException e) {
54+
file = VfsUtil.findFileByURL(URI.create(folder).toURL());
55+
} catch (IllegalArgumentException | MalformedURLException e) {
5656
return false;
5757
}
5858
return file == null || !file.exists();

src/main/java/com/magento/idea/magento2plugin/actions/content/root/UnmarkDirectoryAsMagentoContentRot.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import com.intellij.psi.PsiElement;
2121
import com.magento.idea.magento2plugin.project.Settings;
2222
import com.magento.idea.magento2plugin.util.magento.MagentoPathUrlUtil;
23+
import java.net.URI;
2324
import java.net.MalformedURLException;
24-
import java.net.URL;
2525
import org.jetbrains.annotations.NotNull;
2626

2727
public class UnmarkDirectoryAsMagentoContentRot extends MarkRootActionBase {
@@ -39,8 +39,8 @@ protected void modifyRoots(
3939
settings.getMagentoFolders().removeIf(folder -> {
4040
final VirtualFile file;
4141
try {
42-
file = VfsUtil.findFileByURL(new URL(folder));
43-
} catch (MalformedURLException e) {
42+
file = VfsUtil.findFileByURL(URI.create(folder).toURL());
43+
} catch (IllegalArgumentException | MalformedURLException e) {
4444
return false;
4545
}
4646
return file == null || !file.exists();

src/main/java/com/magento/idea/magento2plugin/actions/context/CustomGeneratorContextAction.java

Lines changed: 52 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@
2121

2222
public abstract class CustomGeneratorContextAction extends AnAction {
2323

24-
private @Nullable GetMagentoModuleUtil.MagentoModuleData moduleData;
25-
private @Nullable PsiDirectory directory;
26-
private @Nullable PsiFile file;
27-
2824
/**
2925
* Abstract context action with custom generation constructor.
3026
*
@@ -41,48 +37,14 @@ public CustomGeneratorContextAction(
4137
@Override
4238
public void update(final @NotNull AnActionEvent event) {
4339
setIsAvailableForEvent(event, false);
44-
final Project project = event.getProject();
45-
46-
if (project == null || !Settings.isEnabled(project)) {
47-
return;
48-
}
49-
final PsiDirectory targetDirectory = GetTargetElementUtil.getDirFromEvent(event);
50-
51-
if (targetDirectory == null) {
52-
return;
53-
}
54-
final GetMagentoModuleUtil.MagentoModuleData magentoModuleData = GetMagentoModuleUtil
55-
.getByContext(targetDirectory, project);
56-
final PsiFile targetFile = GetTargetElementUtil.getFileFromEvent(event);
40+
final ActionContext context = resolveActionContext(event);
5741

58-
if (magentoModuleData == null
59-
|| magentoModuleData.getName() == null
60-
|| !isVisible(magentoModuleData, targetDirectory, targetFile)) {
42+
if (context == null || context.moduleData.getName() == null) {
6143
return;
6244
}
63-
directory = targetDirectory;
64-
file = targetFile;
65-
moduleData = magentoModuleData;
6645
setIsAvailableForEvent(event, true);
6746
}
6847

69-
/**
70-
* Get clicked on module data object.
71-
*
72-
* @return GetMagentoModuleUtil.MagentoModuleData
73-
*/
74-
public @Nullable GetMagentoModuleUtil.MagentoModuleData getModuleData() {
75-
return moduleData;
76-
}
77-
78-
public @Nullable PsiDirectory getDirectory() {
79-
return directory;
80-
}
81-
82-
public @Nullable PsiFile getFile() {
83-
return file;
84-
}
85-
8648
@Override
8749
public @NotNull ActionUpdateThread getActionUpdateThread() {
8850
return ActionUpdateThread.BGT;
@@ -104,6 +66,28 @@ protected abstract boolean isVisible(
10466
final PsiFile targetFile
10567
);
10668

69+
protected @Nullable ActionContext resolveActionContext(final @NotNull AnActionEvent event) {
70+
final Project project = event.getProject();
71+
72+
if (project == null || !Settings.isEnabled(project)) {
73+
return null;
74+
}
75+
final PsiDirectory targetDirectory = GetTargetElementUtil.getDirFromEvent(event);
76+
77+
if (targetDirectory == null) {
78+
return null;
79+
}
80+
final GetMagentoModuleUtil.MagentoModuleData moduleData = GetMagentoModuleUtil
81+
.getByContext(targetDirectory, project);
82+
final PsiFile targetFile = GetTargetElementUtil.getFileFromEvent(event);
83+
84+
if (moduleData == null || !isVisible(moduleData, targetDirectory, targetFile)) {
85+
return null;
86+
}
87+
88+
return new ActionContext(moduleData, targetDirectory, targetFile);
89+
}
90+
10791
/**
10892
* Set is action available for event.
10993
*
@@ -117,4 +101,32 @@ private void setIsAvailableForEvent(
117101
event.getPresentation().setVisible(isAvailable);
118102
event.getPresentation().setEnabled(isAvailable);
119103
}
104+
105+
protected static final class ActionContext {
106+
private final GetMagentoModuleUtil.MagentoModuleData moduleData;
107+
private final PsiDirectory directory;
108+
private final PsiFile file;
109+
110+
private ActionContext(
111+
final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
112+
final @NotNull PsiDirectory directory,
113+
final @Nullable PsiFile file
114+
) {
115+
this.moduleData = moduleData;
116+
this.directory = directory;
117+
this.file = file;
118+
}
119+
120+
public @NotNull GetMagentoModuleUtil.MagentoModuleData getModuleData() {
121+
return moduleData;
122+
}
123+
124+
public @NotNull PsiDirectory getDirectory() {
125+
return directory;
126+
}
127+
128+
public @Nullable PsiFile getFile() {
129+
return file;
130+
}
131+
}
120132
}

src/main/java/com/magento/idea/magento2plugin/actions/context/md/NewReadmeMdAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ public NewReadmeMdAction() {
3030

3131
@Override
3232
public void actionPerformed(final @NotNull AnActionEvent event) {
33-
final GetMagentoModuleUtil.MagentoModuleData moduleData = getModuleData();
33+
final ActionContext context = resolveActionContext(event);
3434

35-
if (event.getProject() == null || moduleData == null || getDirectory() == null) {
35+
if (event.getProject() == null || context == null) {
3636
return;
3737
}
38+
final GetMagentoModuleUtil.MagentoModuleData moduleData = context.getModuleData();
3839
final String[] templateData = moduleData.getName().split(Package.vendorModuleNameSeparator);
3940

4041
if (templateData.length != 2) { //NOPMD
@@ -44,7 +45,7 @@ public void actionPerformed(final @NotNull AnActionEvent event) {
4445
new ModuleReadmeMdData(
4546
templateData[0],
4647
templateData[1],
47-
getDirectory()
48+
context.getDirectory()
4849
),
4950
event.getProject()
5051
);

0 commit comments

Comments
 (0)