Just reformatting

This commit is contained in:
Dave Griffith
2005-02-18 20:37:52 +03:00
parent ae35f826a0
commit cc2be40ebf
5 changed files with 96 additions and 0 deletions
@@ -0,0 +1,55 @@
package com.siyeh.ipp.initialization;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.util.IncorrectOperationException;
import com.siyeh.ipp.base.Intention;
import com.siyeh.ipp.base.PsiElementPredicate;
public class SplitDeclarationAndInitializationIntention extends Intention{
protected PsiElementPredicate getElementPredicate(){
return new SplitDeclarationAndInitializationPredicate();
}
public String getText(){
return "Split into declaration and initialization";
}
public String getFamilyName(){
return "Split Declaration And Initialization";
}
public void invoke(Project project, Editor editor, PsiFile file)
throws IncorrectOperationException{
final PsiField field =
(PsiField) findMatchingElement(file, editor);
field.normalizeDeclaration();
final PsiExpression initializer = field.getInitializer();
final String initializerText = initializer.getText();
final PsiManager psiManager = field.getManager();
final PsiElementFactory elementFactory = psiManager.getElementFactory();
PsiClassInitializer classInitializer =
elementFactory.createClassInitializer();
final PsiClass containingClass = field.getContainingClass();
classInitializer = (PsiClassInitializer) containingClass.addAfter(classInitializer,
field);
final PsiCodeBlock body = classInitializer.getBody();
final String initializationStatementText =
field.getName() + " = " + initializerText + ';';
final PsiExpressionStatement statement =
(PsiExpressionStatement) elementFactory.createStatementFromText(
initializationStatementText, body);
body.add(statement);
if(field.hasModifierProperty(PsiModifier.STATIC)){
final PsiModifierList modifierList =
classInitializer.getModifierList();
modifierList.setModifierProperty(PsiModifier.STATIC, true);
}
initializer.delete();
final CodeStyleManager codeStyleManager = psiManager.getCodeStyleManager();
codeStyleManager.reformat(field);
codeStyleManager.reformat(classInitializer);
}
}
@@ -0,0 +1,22 @@
package com.siyeh.ipp.initialization;
import com.siyeh.ipp.base.PsiElementPredicate;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiExpression;
public class SplitDeclarationAndInitializationPredicate
implements PsiElementPredicate{
public boolean satisfiedBy(PsiElement element){
if(!(element instanceof PsiField)){
return false;
}
final PsiField field = (PsiField) element;
final PsiExpression initializer = field.getInitializer();
if(initializer == null)
{
return false;
}
return true;
}
}
@@ -0,0 +1,6 @@
public class X {
int i;
{
i = 65535;
}
}
@@ -0,0 +1,3 @@
public class X {
<spot>int i = 65535;</spot>
}
@@ -0,0 +1,10 @@
<html>
<body>
<font face="verdana" size="-1">This intention splits a field declaration with
initialization into a declaration and an initializer block.<br>
</font>
<br><br>
<font face="verdana" size="-2">Powered by IntentionPowerPack </font>
</body>
</html>