diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties index fa1031662b6..8d015df2d3e 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties @@ -128,7 +128,6 @@ options.kotlin.attribute.descriptor.smart.constant=Smart constant options.kotlin.attribute.descriptor.smart.cast.receiver=Smart-cast implicit receiver options.kotlin.attribute.descriptor.implicit.exhaustive.when=Implicitly exhaustive when options.kotlin.attribute.descriptor.label=Label -change.to.function.invocation=Change to function invocation migrate.sure=Replace sure() calls by !! in project migrate.class.object.to.companion=Replace 'class' keyword with 'companion' modifier migrate.class.object.to.companion.family=Replace 'class' Keyword with 'companion' Modifier diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToFunctionInvocationFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToFunctionInvocationFix.kt index 3b4ef1c70f1..6bf2b5d9891 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToFunctionInvocationFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToFunctionInvocationFix.kt @@ -14,51 +14,29 @@ * limitations under the License. */ -package org.jetbrains.kotlin.idea.quickfix; +package org.jetbrains.kotlin.idea.quickfix -import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.project.Project; -import com.intellij.util.IncorrectOperationException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.diagnostics.Diagnostic; -import org.jetbrains.kotlin.idea.KotlinBundle; -import org.jetbrains.kotlin.psi.KtExpression; -import org.jetbrains.kotlin.psi.KtFile; -import org.jetbrains.kotlin.psi.KtPsiFactoryKt; +import com.intellij.openapi.editor.Editor +import com.intellij.openapi.project.Project +import org.jetbrains.kotlin.diagnostics.Diagnostic +import org.jetbrains.kotlin.psi.KtExpression +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.KtPsiFactory +import org.jetbrains.kotlin.psi.createExpressionByPattern -public class ChangeToFunctionInvocationFix extends KotlinQuickFixAction { +class ChangeToFunctionInvocationFix(element: KtExpression) : KotlinQuickFixAction(element) { + override fun getFamilyName() = "Change to function invocation" - public ChangeToFunctionInvocationFix(@NotNull KtExpression element) { - super(element); + override fun getText() = familyName + + public override fun invoke(project: Project, editor: Editor?, file: KtFile) { + element.replace(KtPsiFactory(file).createExpressionByPattern("$0()", element)) } - @NotNull - @Override - public String getText() { - return KotlinBundle.message("change.to.function.invocation"); - } - - @NotNull - @Override - public String getFamilyName() { - return KotlinBundle.message("change.to.function.invocation"); - } - - @Override - public void invoke(@NotNull Project project, Editor editor, @NotNull KtFile file) throws IncorrectOperationException { - KtExpression reference = (KtExpression) getElement().copy(); - getElement().replace(KtPsiFactoryKt.KtPsiFactory(file).createExpression(reference.getText() + "()")); - } - - public static KotlinSingleIntentionActionFactory createFactory() { - return new KotlinSingleIntentionActionFactory() { - @Override - public KotlinQuickFixAction createAction(@NotNull Diagnostic diagnostic) { - if (diagnostic.getPsiElement() instanceof KtExpression) { - return new ChangeToFunctionInvocationFix((KtExpression) diagnostic.getPsiElement()); - } - return null; - } - }; + companion object : KotlinSingleIntentionActionFactory() { + override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction? { + val expression = diagnostic.psiElement as? KtExpression ?: return null + return ChangeToFunctionInvocationFix(expression) + } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt index cd7e4071c94..5ee1b880aff 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt @@ -141,7 +141,7 @@ class QuickFixRegistrar : QuickFixContributor { CONFLICTING_IMPORT.registerFactory(removeImportFixFactory) SUPERTYPE_NOT_INITIALIZED.registerFactory(SuperClassNotInitialized) - FUNCTION_CALL_EXPECTED.registerFactory(ChangeToFunctionInvocationFix.createFactory()) + FUNCTION_CALL_EXPECTED.registerFactory(ChangeToFunctionInvocationFix) CANNOT_CHANGE_ACCESS_PRIVILEGE.registerFactory(ChangeVisibilityModifierFix.createFactory()) CANNOT_WEAKEN_ACCESS_PRIVILEGE.registerFactory(ChangeVisibilityModifierFix.createFactory())