Added 'change to backing field' fix
This commit is contained in:
@@ -56,8 +56,7 @@ public abstract class JetTestCaseBuilder {
|
||||
resultFilter = new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File file, String s) {
|
||||
if (extensionFilter.accept(file, s) && filter.accept(file, s)) return true;
|
||||
return false;
|
||||
return extensionFilter.accept(file, s) && filter.accept(file, s);
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -77,7 +76,7 @@ public abstract class JetTestCaseBuilder {
|
||||
List<File> subdirs = Arrays.asList(files);
|
||||
Collections.sort(subdirs);
|
||||
for (File subdir : subdirs) {
|
||||
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, factory));
|
||||
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory));
|
||||
}
|
||||
}
|
||||
List<File> files = Arrays.asList(dir.listFiles(resultFilter));
|
||||
|
||||
@@ -23,4 +23,5 @@ remove.cast=Remove cast
|
||||
remove.elvis.operator=Remove elvis operator
|
||||
replace.operation.in.binary.expression=Replace operation in a binary expression
|
||||
replace.cast.with.static.assert=Replace a cast with a static assert
|
||||
replace.with.dot.call=Replace with dot call
|
||||
replace.with.dot.call=Replace with dot call
|
||||
change.to.backing.field=Change reference to backing field
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.jetbrains.jet.plugin.quickfix;
|
||||
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticWithPsiElement;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
||||
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
||||
import org.jetbrains.jet.plugin.JetBundle;
|
||||
|
||||
/**
|
||||
* @author svtk
|
||||
*/
|
||||
public class ChangeToBackingFieldFix extends JetIntentionAction<JetSimpleNameExpression> {
|
||||
public ChangeToBackingFieldFix(@NotNull JetSimpleNameExpression element) {
|
||||
super(element);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getText() {
|
||||
return JetBundle.message("change.to.backing.field");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getFamilyName() {
|
||||
return JetBundle.message("change.to.backing.field");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
|
||||
JetSimpleNameExpression backingField = (JetSimpleNameExpression) JetPsiFactory.createExpression(project, "$" + element.getText());
|
||||
element.replace(backingField);
|
||||
}
|
||||
|
||||
public static JetIntentionActionFactory<JetSimpleNameExpression> createFactory() {
|
||||
return new JetIntentionActionFactory<JetSimpleNameExpression>() {
|
||||
@Override
|
||||
public JetIntentionAction<JetSimpleNameExpression> createAction(DiagnosticWithPsiElement diagnostic) {
|
||||
assert diagnostic.getPsiElement() instanceof JetSimpleNameExpression;
|
||||
return new ChangeToBackingFieldFix((JetSimpleNameExpression) diagnostic.getPsiElement());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -105,5 +105,7 @@ public class QuickFixes {
|
||||
add(Errors.ILLEGAL_MODIFIER, removeModifierFactory);
|
||||
|
||||
add(Errors.PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE, AddReturnTypeFix.createFactory());
|
||||
|
||||
add(Errors.INITIALIZATION_USING_BACKING_FIELD, ChangeToBackingFieldFix.createFactory());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Change reference to backing field" "true"
|
||||
class A() {
|
||||
val a : Int
|
||||
{
|
||||
<caret>$a = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Change reference to backing field" "true"
|
||||
class A() {
|
||||
val a : Int
|
||||
{
|
||||
<caret>a = 1
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@ public class JetQuickFixTest extends LightQuickFixTestCase {
|
||||
List<String> subDirs = Arrays.asList(quickFixTestsFilter != null ? dir.list(quickFixTestsFilter) : dir.list());
|
||||
Collections.sort(subDirs);
|
||||
for (String subDirName : subDirs) {
|
||||
suite.addTest(JetTestCaseBuilder.suiteForDirectory(getTestDataPathBase(), subDirName, false, fileNameFilter, namedTestFactory));
|
||||
suite.addTest(JetTestCaseBuilder.suiteForDirectory(getTestDataPathBase(), subDirName, true, fileNameFilter, namedTestFactory));
|
||||
|
||||
}
|
||||
return suite;
|
||||
|
||||
Reference in New Issue
Block a user