Add quick-fix for default parameter value removal #KT-25146 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
a059d50c8f
commit
1b1e503716
@@ -567,5 +567,8 @@ class QuickFixRegistrar : QuickFixContributor {
|
||||
CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT.registerFactory(MoveMemberToCompanionObjectIntention)
|
||||
|
||||
NO_COMPANION_OBJECT.registerFactory(AddIsToWhenConditionFix)
|
||||
|
||||
DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE.registerFactory(RemoveDefaultParameterValueFix)
|
||||
ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS.registerFactory(RemoveDefaultParameterValueFix)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.jetbrains.kotlin.idea.quickfix
|
||||
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.idea.util.CommentSaver
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtParameter
|
||||
|
||||
class RemoveDefaultParameterValueFix(parameter: KtParameter) : KotlinQuickFixAction<KtParameter>(parameter) {
|
||||
|
||||
override fun getText() = "Remove default parameter value"
|
||||
|
||||
override fun getFamilyName() = text
|
||||
|
||||
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
|
||||
val parameter = element ?: return
|
||||
val typeReference = parameter.typeReference ?: return
|
||||
val defaultValue = parameter.defaultValue ?: return
|
||||
val commentSaver = CommentSaver(parameter)
|
||||
parameter.deleteChildRange(typeReference.nextSibling, defaultValue)
|
||||
commentSaver.restore(parameter)
|
||||
}
|
||||
|
||||
companion object : KotlinSingleIntentionActionFactory() {
|
||||
override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtParameter>? =
|
||||
(diagnostic.psiElement as? KtParameter)?.let { RemoveDefaultParameterValueFix(it) }
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user