mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 21:55:01 +07:00
create constant from usage: set static/final before insert field in order to get correct anchor (IDEA-100867)
This commit is contained in:
+11
-13
@@ -78,24 +78,22 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.FINAL, true);
|
||||
}
|
||||
|
||||
if (createConstantField()) {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.STATIC, true);
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.FINAL, true);
|
||||
} else {
|
||||
if (!targetClass.isInterface() && shouldCreateStaticMember(myReferenceExpression, targetClass)) {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.STATIC, true);
|
||||
}
|
||||
if (shouldCreateFinalMember(myReferenceExpression, targetClass)) {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.FINAL, true);
|
||||
}
|
||||
}
|
||||
|
||||
field = CreateFieldFromUsageHelper.insertField(targetClass, field, myReferenceExpression);
|
||||
|
||||
setupVisibility(parentClass, targetClass, field.getModifierList());
|
||||
|
||||
if (!targetClass.isInterface() && shouldCreateStaticMember(myReferenceExpression, targetClass)) {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.STATIC, true);
|
||||
}
|
||||
|
||||
if (shouldCreateFinalMember(myReferenceExpression, targetClass)) {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.FINAL, true);
|
||||
}
|
||||
|
||||
if (createConstantField()) {
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.STATIC, true);
|
||||
PsiUtil.setModifierProperty(field, PsiModifier.FINAL, true);
|
||||
}
|
||||
|
||||
final Editor newEditor = positionCursor(project, targetFile, field);
|
||||
if (newEditor == null) return;
|
||||
Template template =
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// "Create Constant Field 'SOME_REGEXP'" "true"
|
||||
class IntroduceConstant {
|
||||
private static final String SOME_REGEXP = ;
|
||||
private static final String SOME_PATTERN = SOME_REGEXP;
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// "Create Constant Field 'SOME_REGEXP'" "true"
|
||||
class IntroduceConstant {
|
||||
private static final String SOME_PATTERN = SOME_RE<caret>GEXP;
|
||||
}
|
||||
+4
@@ -48,6 +48,10 @@ public class CreateFieldFromUsageTest extends LightQuickFixTestCase{
|
||||
doSingleTest();
|
||||
}
|
||||
|
||||
public void testDependantConstant() throws Exception {
|
||||
doSingleTest();
|
||||
}
|
||||
|
||||
protected void doSingleTest() {
|
||||
doSingleTest(getTestName(false) + ".java");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user