mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] Convert ConvertIllegalEscapeToUnicodeEscapeFix to ModCommandAction
^KTIJ-29491 GitOrigin-RevId: 82792e5890a3a1b4f72659749f29bb04eb61912a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2eccac6137
commit
d042fbcfaf
+12
-10
@@ -1,27 +1,29 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.quickfix
|
||||
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.modcommand.ActionContext
|
||||
import com.intellij.modcommand.ModPsiUpdater
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.quickfixes.KotlinQuickFixAction
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.KotlinPsiUpdateModCommandAction
|
||||
import org.jetbrains.kotlin.psi.KtConstantExpression
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtEscapeStringTemplateEntry
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
|
||||
class ConvertIllegalEscapeToUnicodeEscapeFix(
|
||||
element: KtElement,
|
||||
private val unicodeEscape: String
|
||||
) : KotlinQuickFixAction<KtElement>(element) {
|
||||
override fun getText(): String = KotlinBundle.message("convert.to.unicode.escape")
|
||||
) : KotlinPsiUpdateModCommandAction.ElementBased<KtElement, Unit>(element, Unit) {
|
||||
|
||||
override fun getFamilyName(): String = text
|
||||
override fun getFamilyName(): String = KotlinBundle.message("convert.to.unicode.escape")
|
||||
|
||||
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
|
||||
val element = this.element ?: return
|
||||
val psiFactory = KtPsiFactory(project)
|
||||
override fun invoke(
|
||||
actionContext: ActionContext,
|
||||
element: KtElement,
|
||||
elementContext: Unit,
|
||||
updater: ModPsiUpdater,
|
||||
) {
|
||||
val psiFactory = KtPsiFactory(actionContext.project)
|
||||
when (element) {
|
||||
is KtConstantExpression -> element.replace(psiFactory.createExpression("'$unicodeEscape'"))
|
||||
is KtEscapeStringTemplateEntry -> element.replace(psiFactory.createStringTemplate(unicodeEscape).entries.first())
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ internal object ConvertIllegalEscapeToUnicodeEscapeFixFactory : KotlinSingleInte
|
||||
else -> null
|
||||
} ?: return null
|
||||
val unicodeEscape = illegalEscapeToUnicodeEscape[illegalEscape] ?: return null
|
||||
return ConvertIllegalEscapeToUnicodeEscapeFix(element, unicodeEscape)
|
||||
return ConvertIllegalEscapeToUnicodeEscapeFix(element, unicodeEscape).asIntention()
|
||||
}
|
||||
|
||||
private val illegalEscapeToUnicodeEscape = mapOf("\\f" to "\\u000c")
|
||||
|
||||
Reference in New Issue
Block a user