Extract Function: Choose default visibility at analysis phase
This commit is contained in:
+8
-1
@@ -581,6 +581,13 @@ private fun ExtractionData.getLocalInstructions(pseudocode: Pseudocode): List<In
|
||||
return instructions
|
||||
}
|
||||
|
||||
fun ExtractionData.isVisibilityApplicable(): Boolean {
|
||||
return when (targetSibling.getParent()) {
|
||||
is JetClassBody, is JetFile -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
fun ExtractionData.performAnalysis(): AnalysisResult {
|
||||
if (originalElements.empty) {
|
||||
return AnalysisResult(null, Status.CRITICAL_ERROR, listOf(ErrorMessage.NO_EXPRESSION))
|
||||
@@ -664,7 +671,7 @@ fun ExtractionData.performAnalysis(): AnalysisResult {
|
||||
ExtractableCodeDescriptor(
|
||||
this,
|
||||
functionName,
|
||||
"",
|
||||
if (isVisibilityApplicable()) "private" else "",
|
||||
adjustedParameters.sortBy { it.name },
|
||||
receiverParameter,
|
||||
paramsInfo.typeParameters.sortBy { it.originalDeclaration.getName()!! },
|
||||
|
||||
+2
-5
@@ -29,8 +29,6 @@ import kotlin.Function0;
|
||||
import kotlin.Function1;
|
||||
import kotlin.Unit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.JetClassBody;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.plugin.refactoring.JetNameSuggester;
|
||||
import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle;
|
||||
import org.jetbrains.jet.plugin.refactoring.RefactoringPackage;
|
||||
@@ -81,8 +79,7 @@ public class KotlinExtractFunctionDialog extends DialogWrapper {
|
||||
}
|
||||
|
||||
private boolean isVisibilitySectionAvailable() {
|
||||
PsiElement target = originalDescriptor.getDescriptor().getExtractionData().getTargetSibling().getParent();
|
||||
return target instanceof JetClassBody || target instanceof JetFile;
|
||||
return ExtractFunctionPackage.isVisibilityApplicable(originalDescriptor.getDescriptor().getExtractionData());
|
||||
}
|
||||
|
||||
private String getFunctionName() {
|
||||
@@ -132,7 +129,7 @@ public class KotlinExtractFunctionDialog extends DialogWrapper {
|
||||
boolean enableVisibility = isVisibilitySectionAvailable();
|
||||
visibilityBox.setEnabled(enableVisibility);
|
||||
if (enableVisibility) {
|
||||
visibilityBox.setSelectedItem("private");
|
||||
visibilityBox.setSelectedItem(originalDescriptor.getDescriptor().getVisibility());
|
||||
}
|
||||
visibilityBox.addItemListener(
|
||||
new ItemListener() {
|
||||
|
||||
Reference in New Issue
Block a user