Skip to content

Commit 976a5e2

Browse files
authored
Localizing refactoring handlers after platform update (part 2). (#269)
1 parent b313606 commit 976a5e2

20 files changed

Lines changed: 1118 additions & 1039 deletions

plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveMembers/MoveMembersProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ public MoveMembersProcessor(Project project, @Nullable MoveCallback moveCallback
8282

8383
@Nonnull
8484
@Override
85-
protected String getCommandName() {
86-
return myCommandName.get();
85+
protected LocalizeValue getCommandName() {
86+
return myCommandName;
8787
}
8888

8989
private void setOptions(MoveMembersOptions dialog) {

plugin/src/main/java/com/intellij/java/impl/refactoring/rename/ClassHidesUnqualifiableClassUsageInfo.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,27 @@
2222
import consulo.language.editor.refactoring.rename.UnresolvableCollisionUsageInfo;
2323
import consulo.language.editor.refactoring.ui.RefactoringUIUtil;
2424
import consulo.language.psi.PsiElement;
25+
import consulo.localize.LocalizeValue;
26+
import jakarta.annotation.Nonnull;
2527

2628
/**
2729
* @author dsl
2830
*/
2931
public class ClassHidesUnqualifiableClassUsageInfo extends UnresolvableCollisionUsageInfo {
30-
private final PsiClass myHiddenClass;
32+
private final PsiClass myHiddenClass;
3133

32-
public ClassHidesUnqualifiableClassUsageInfo(PsiJavaCodeReferenceElement element, PsiClass renamedClass, PsiClass hiddenClass) {
33-
super(element, renamedClass);
34-
myHiddenClass = hiddenClass;
35-
}
34+
public ClassHidesUnqualifiableClassUsageInfo(PsiJavaCodeReferenceElement element, PsiClass renamedClass, PsiClass hiddenClass) {
35+
super(element, renamedClass);
36+
myHiddenClass = hiddenClass;
37+
}
3638

37-
public String getDescription() {
38-
PsiElement container = ConflictsUtil.getContainer(myHiddenClass);
39-
return RefactoringLocalize.renamedClassWillHide0In1(
40-
RefactoringUIUtil.getDescription(myHiddenClass, false),
41-
RefactoringUIUtil.getDescription(container, false)
42-
).get();
43-
}
39+
@Nonnull
40+
@Override
41+
public LocalizeValue getDescription() {
42+
PsiElement container = ConflictsUtil.getContainer(myHiddenClass);
43+
return RefactoringLocalize.renamedClassWillHide0In1(
44+
RefactoringUIUtil.getDescription(myHiddenClass, false),
45+
RefactoringUIUtil.getDescription(container, false)
46+
);
47+
}
4448
}

plugin/src/main/java/com/intellij/java/impl/refactoring/rename/DirectoryAsPackageRenameHandler.java

Lines changed: 46 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,63 +19,70 @@
1919
import com.intellij.java.language.psi.JavaDirectoryService;
2020
import com.intellij.java.language.psi.PsiJavaPackage;
2121
import com.intellij.java.language.psi.PsiNameHelper;
22+
import consulo.annotation.access.RequiredReadAction;
2223
import consulo.annotation.component.ExtensionImpl;
2324
import consulo.language.editor.refactoring.BaseRefactoringProcessor;
2425
import consulo.language.editor.refactoring.localize.RefactoringLocalize;
2526
import consulo.language.editor.refactoring.rename.DirectoryAsPackageRenameHandlerBase;
2627
import consulo.language.psi.PsiDirectory;
28+
import consulo.localize.LocalizeValue;
2729
import consulo.project.Project;
2830
import consulo.util.lang.StringUtil;
2931
import consulo.virtualFileSystem.VirtualFile;
32+
import jakarta.annotation.Nonnull;
3033

3134
/**
3235
* @author yole
3336
*/
3437
@ExtensionImpl
3538
public class DirectoryAsPackageRenameHandler extends DirectoryAsPackageRenameHandlerBase<PsiJavaPackage> {
39+
@Override
40+
protected VirtualFile[] occursInPackagePrefixes(PsiJavaPackage aPackage) {
41+
return aPackage.occursInPackagePrefixes();
42+
}
3643

37-
@Override
38-
protected VirtualFile[] occursInPackagePrefixes(PsiJavaPackage aPackage) {
39-
return aPackage.occursInPackagePrefixes();
40-
}
44+
@Override
45+
protected boolean isIdentifier(String name, Project project) {
46+
return PsiNameHelper.getInstance(project).isIdentifier(name);
47+
}
4148

42-
@Override
43-
protected boolean isIdentifier(String name, Project project) {
44-
return PsiNameHelper.getInstance(project).isIdentifier(name);
45-
}
49+
@Override
50+
protected String getQualifiedName(PsiJavaPackage aPackage) {
51+
return aPackage.getQualifiedName();
52+
}
4653

47-
@Override
48-
protected String getQualifiedName(PsiJavaPackage aPackage) {
49-
return aPackage.getQualifiedName();
50-
}
54+
@Override
55+
protected PsiJavaPackage getPackage(PsiDirectory psiDirectory) {
56+
return JavaDirectoryService.getInstance().getPackage(psiDirectory);
57+
}
5158

52-
@Override
53-
protected PsiJavaPackage getPackage(PsiDirectory psiDirectory) {
54-
return JavaDirectoryService.getInstance().getPackage(psiDirectory);
55-
}
59+
@Override
60+
@RequiredReadAction
61+
protected BaseRefactoringProcessor createProcessor(
62+
final String newQName,
63+
Project project,
64+
final PsiDirectory[] dirsToRename,
65+
boolean searchInComments,
66+
boolean searchInNonJavaFiles
67+
) {
68+
return new MoveDirectoryWithClassesProcessor(project, dirsToRename, null, searchInComments, searchInNonJavaFiles, false, null) {
69+
@Override
70+
public TargetDirectoryWrapper getTargetDirectory(PsiDirectory dir) {
71+
return new TargetDirectoryWrapper(dir.getParentDirectory(), StringUtil.getShortName(newQName));
72+
}
5673

57-
@Override
58-
protected BaseRefactoringProcessor createProcessor(final String newQName,
59-
Project project,
60-
final PsiDirectory[] dirsToRename,
61-
boolean searchInComments, boolean searchInNonJavaFiles) {
62-
return new MoveDirectoryWithClassesProcessor(project, dirsToRename, null, searchInComments, searchInNonJavaFiles, false, null) {
63-
@Override
64-
public TargetDirectoryWrapper getTargetDirectory(PsiDirectory dir) {
65-
return new TargetDirectoryWrapper(dir.getParentDirectory(), StringUtil.getShortName(newQName));
66-
}
74+
@Override
75+
protected String getTargetName() {
76+
return newQName;
77+
}
6778

68-
@Override
69-
protected String getTargetName() {
70-
return newQName;
71-
}
72-
73-
@Override
74-
protected String getCommandName() {
75-
return dirsToRename.length == 1
76-
? RefactoringLocalize.renameDirectoryCommandName().get()
77-
: RefactoringLocalize.renameDirectoriesCommandName().get();
78-
}
79-
};
80-
}
79+
@Nonnull
80+
@Override
81+
protected LocalizeValue getCommandName() {
82+
return dirsToRename.length == 1
83+
? RefactoringLocalize.renameDirectoryCommandName()
84+
: RefactoringLocalize.renameDirectoriesCommandName();
85+
}
86+
};
87+
}
8188
}

plugin/src/main/java/com/intellij/java/impl/refactoring/rename/LocalHidesRenamedLocalUsageInfo.java

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,38 +13,36 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
17-
/*
18-
* Created by IntelliJ IDEA.
19-
* User: dsl
20-
* Date: 05.06.2002
21-
* Time: 13:38:29
22-
* To change template for new class use
23-
* Code Style | Class Templates options (Tools | IDE Options).
24-
*/
2516
package com.intellij.java.impl.refactoring.rename;
2617

18+
import consulo.annotation.access.RequiredReadAction;
2719
import consulo.language.editor.refactoring.localize.RefactoringLocalize;
2820
import consulo.language.editor.refactoring.rename.UnresolvableCollisionUsageInfo;
2921
import consulo.language.editor.refactoring.ui.RefactoringUIUtil;
30-
import consulo.language.editor.refactoring.util.CommonRefactoringUtil;
3122
import consulo.language.psi.PsiElement;
3223
import consulo.localize.LocalizeValue;
3324
import consulo.usage.UsageViewUtil;
25+
import jakarta.annotation.Nonnull;
3426

27+
/*
28+
* @author dsl
29+
* @since 2002-06-05
30+
*/
3531
public class LocalHidesRenamedLocalUsageInfo extends UnresolvableCollisionUsageInfo {
36-
private final PsiElement myConflictingElement;
32+
private final PsiElement myConflictingElement;
3733

38-
public LocalHidesRenamedLocalUsageInfo(PsiElement element, PsiElement conflictingElement) {
39-
super(element, null);
40-
myConflictingElement = conflictingElement;
41-
}
34+
public LocalHidesRenamedLocalUsageInfo(PsiElement element, PsiElement conflictingElement) {
35+
super(element, null);
36+
myConflictingElement = conflictingElement;
37+
}
4238

43-
public String getDescription() {
44-
PsiElement element = getElement();
45-
String type = element == null ? "element" : UsageViewUtil.getType(element);
46-
String elemDescr = RefactoringUIUtil.getDescription(myConflictingElement, true);
47-
LocalizeValue descr = RefactoringLocalize.thereIsAlreadyA0ItWillConflictWithTheRenamed1(elemDescr, type);
48-
return CommonRefactoringUtil.capitalize(descr.get());
49-
}
39+
@Nonnull
40+
@Override
41+
@RequiredReadAction
42+
public LocalizeValue getDescription() {
43+
PsiElement element = getElement();
44+
String type = element == null ? "element" : UsageViewUtil.getType(element);
45+
String elemDescr = RefactoringUIUtil.getDescription(myConflictingElement, true);
46+
return RefactoringLocalize.thereIsAlreadyA0ItWillConflictWithTheRenamed1(elemDescr, type);
47+
}
5048
}

plugin/src/main/java/com/intellij/java/impl/refactoring/rename/RenameJavaClassProcessor.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,13 @@ public void findCollisions(
196196
for (PsiTypeParameter typeParameter : owner.getTypeParameters()) {
197197
if (Comparing.equal(newName, typeParameter.getName())) {
198198
result.add(new UnresolvableCollisionUsageInfo(typeParam, typeParameter) {
199+
@Nonnull
199200
@Override
200-
public String getDescription() {
201-
return "There is already type parameter in " +
202-
RefactoringUIUtil.getDescription(typeParam, false) + " with name " + newName;
201+
public LocalizeValue getDescription() {
202+
return LocalizeValue.localizeTODO(
203+
"There is already type parameter in " +
204+
RefactoringUIUtil.getDescription(typeParam, false) + " with name " + newName
205+
);
203206
}
204207
});
205208
}
@@ -231,7 +234,7 @@ else if (aClass instanceof PsiTypeParameter typeParam) {
231234
if (typeParam.getOwner() instanceof PsiClass ownerClass) {
232235
for (PsiClass superClass : ownerClass.getSupers()) {
233236
if (newName.equals(superClass.getName())) {
234-
ClassCollisionsDetector classCollisionsDetector = new ClassCollisionsDetector(aClass);
237+
ClassCollisionsDetector classCollisionsDetector = new ClassCollisionsDetector(typeParam);
235238
for (PsiReference reference : ReferencesSearch.search(superClass, new LocalSearchScope(superClass))) {
236239
classCollisionsDetector.addClassCollisions(reference.getElement(), newName, result);
237240
}
@@ -244,7 +247,7 @@ else if (aClass instanceof PsiTypeParameter typeParam) {
244247
if (refElement instanceof PsiReferenceExpression refExpr && refExpr.isQualified()) {
245248
return true;
246249
}
247-
MemberHidesOuterMemberUsageInfo info = new MemberHidesOuterMemberUsageInfo(refElement, aClass);
250+
MemberHidesOuterMemberUsageInfo info = new MemberHidesOuterMemberUsageInfo(refElement, typeParam);
248251
result.add(info);
249252
return true;
250253
});

plugin/src/main/java/com/intellij/java/impl/refactoring/rename/RenameJavaMethodProcessor.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,7 @@ else if (usage instanceof MemberHidesOuterMemberUsageInfo) {
9494
outerHides.add(new MemberHidesOuterMemberUsageInfo(element, resolved));
9595
}
9696
else if (!(element instanceof PsiMethod)) {
97-
PsiReference ref;
98-
if (usage instanceof MoveRenameUsageInfo) {
99-
ref = usage.getReference();
100-
}
101-
else {
102-
ref = element.getReference();
103-
}
97+
PsiReference ref = usage instanceof MoveRenameUsageInfo ? usage.getReference() : element.getReference();
10498
if (ref instanceof PsiImportStaticReferenceElement importStaticRef && importStaticRef.multiResolve(false).length > 1) {
10599
continue;
106100
}
@@ -202,10 +196,13 @@ public void findCollisions(
202196
final PsiMethod methodInBaseClass = containingClass.findMethodBySignature(patternMethod, true);
203197
if (methodInBaseClass != null && methodInBaseClass.getContainingClass() != containingClass && methodInBaseClass.isFinal()) {
204198
result.add(new UnresolvableCollisionUsageInfo(methodInBaseClass, methodToRename) {
199+
@Nonnull
205200
@Override
206-
public String getDescription() {
207-
return "Renaming method will override final " +
208-
"\"" + RefactoringUIUtil.getDescription(methodInBaseClass, true) + "\"";
201+
public LocalizeValue getDescription() {
202+
return LocalizeValue.localizeTODO(
203+
"Renaming method will override final " +
204+
"\"" + RefactoringUIUtil.getDescription(methodInBaseClass, true) + "\""
205+
);
209206
}
210207
});
211208
}
@@ -240,10 +237,13 @@ private void findHidingMethodWithOtherSignature(final PsiMethod methodToRename,
240237
final PsiMember resolveResultElement = (PsiMember) resolveResult.getElement();
241238
if (resolveResult.isValidResult() && resolveResultElement != null) {
242239
result.add(new UnresolvableCollisionUsageInfo(refExpr, methodToRename) {
240+
@Nonnull
243241
@Override
244-
public String getDescription() {
245-
return "Method call would be linked to " +
246-
"\"" + RefactoringUIUtil.getDescription(resolveResultElement, true) + "\" after rename";
242+
public LocalizeValue getDescription() {
243+
return LocalizeValue.localizeTODO(
244+
"Method call would be linked to " +
245+
"\"" + RefactoringUIUtil.getDescription(resolveResultElement, true) + "\" after rename"
246+
);
247247
}
248248
});
249249
break;

plugin/src/main/java/com/intellij/java/impl/refactoring/rename/SubmemberHidesMemberUsageInfo.java

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,42 +13,35 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
17-
/*
18-
* Created by IntelliJ IDEA.
19-
* User: dsl
20-
* Date: 05.06.2002
21-
* Time: 12:43:27
22-
* To change template for new class use
23-
* Code Style | Class Templates options (Tools | IDE Options).
24-
*/
2516
package com.intellij.java.impl.refactoring.rename;
2617

2718
import com.intellij.java.language.psi.PsiMethod;
19+
import consulo.annotation.access.RequiredReadAction;
2820
import consulo.language.editor.refactoring.localize.RefactoringLocalize;
2921
import consulo.language.editor.refactoring.rename.UnresolvableCollisionUsageInfo;
3022
import consulo.language.editor.refactoring.ui.RefactoringUIUtil;
31-
import consulo.language.editor.refactoring.util.CommonRefactoringUtil;
3223
import consulo.language.psi.PsiElement;
3324
import consulo.localize.LocalizeValue;
3425
import consulo.usage.UsageViewUtil;
26+
import jakarta.annotation.Nonnull;
3527

28+
/**
29+
* @author dsl
30+
* @since 2002-06-05
31+
*/
3632
public class SubmemberHidesMemberUsageInfo extends UnresolvableCollisionUsageInfo {
37-
public SubmemberHidesMemberUsageInfo(PsiElement element, PsiElement referencedElement) {
38-
super(element, referencedElement);
39-
}
33+
public SubmemberHidesMemberUsageInfo(PsiElement element, PsiElement referencedElement) {
34+
super(element, referencedElement);
35+
}
4036

41-
public String getDescription() {
42-
PsiElement element = getElement();
43-
LocalizeValue descr = element instanceof PsiMethod
44-
? RefactoringLocalize.zeroWillOverrideRenamed1(
45-
RefactoringUIUtil.getDescription(element, true),
46-
UsageViewUtil.getType(element)
47-
)
48-
: RefactoringLocalize.zeroWillHideRenamed1(
49-
RefactoringUIUtil.getDescription(element, true),
50-
UsageViewUtil.getType(element)
51-
);
52-
return CommonRefactoringUtil.capitalize(descr.get());
53-
}
37+
@Nonnull
38+
@Override
39+
@RequiredReadAction
40+
public LocalizeValue getDescription() {
41+
PsiElement element = getElement();
42+
LocalizeValue descr = element instanceof PsiMethod method
43+
? RefactoringLocalize.zeroWillOverrideRenamed1(RefactoringUIUtil.getDescription(element, true), UsageViewUtil.getType(element))
44+
: RefactoringLocalize.zeroWillHideRenamed1(RefactoringUIUtil.getDescription(element, true), UsageViewUtil.getType(element));
45+
return descr.capitalize();
46+
}
5447
}

0 commit comments

Comments
 (0)