Added 'change to backing field' fix
This commit is contained in:
@@ -56,8 +56,7 @@ public abstract class JetTestCaseBuilder {
|
|||||||
resultFilter = new FilenameFilter() {
|
resultFilter = new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File file, String s) {
|
public boolean accept(File file, String s) {
|
||||||
if (extensionFilter.accept(file, s) && filter.accept(file, s)) return true;
|
return extensionFilter.accept(file, s) && filter.accept(file, s);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -77,7 +76,7 @@ public abstract class JetTestCaseBuilder {
|
|||||||
List<File> subdirs = Arrays.asList(files);
|
List<File> subdirs = Arrays.asList(files);
|
||||||
Collections.sort(subdirs);
|
Collections.sort(subdirs);
|
||||||
for (File subdir : 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));
|
List<File> files = Arrays.asList(dir.listFiles(resultFilter));
|
||||||
|
|||||||
@@ -23,4 +23,5 @@ remove.cast=Remove cast
|
|||||||
remove.elvis.operator=Remove elvis operator
|
remove.elvis.operator=Remove elvis operator
|
||||||
replace.operation.in.binary.expression=Replace operation in a binary expression
|
replace.operation.in.binary.expression=Replace operation in a binary expression
|
||||||
replace.cast.with.static.assert=Replace a cast with a static assert
|
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.ILLEGAL_MODIFIER, removeModifierFactory);
|
||||||
|
|
||||||
add(Errors.PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE, AddReturnTypeFix.createFactory());
|
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());
|
List<String> subDirs = Arrays.asList(quickFixTestsFilter != null ? dir.list(quickFixTestsFilter) : dir.list());
|
||||||
Collections.sort(subDirs);
|
Collections.sort(subDirs);
|
||||||
for (String subDirName : 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;
|
return suite;
|
||||||
|
|||||||
Reference in New Issue
Block a user