RemoveCurlyBracesFromTemplateIntention - minor refactoring
This commit is contained in:
@@ -287,8 +287,6 @@ change.function.signature.chooser.title=Choose signature
|
|||||||
change.function.signature.action=Change function signature
|
change.function.signature.action=Change function signature
|
||||||
remove.unnecessary.parentheses=Remove unnecessary parentheses
|
remove.unnecessary.parentheses=Remove unnecessary parentheses
|
||||||
remove.unnecessary.parentheses.family=Remove Unnecessary Parentheses
|
remove.unnecessary.parentheses.family=Remove Unnecessary Parentheses
|
||||||
remove.unnecessary.curly.brackets.from.string.template=Remove curly braces from variable
|
|
||||||
remove.unnecessary.curly.brackets.from.string.template.family=Remove Curly Braces From Variable
|
|
||||||
add.name.to.argument.family=Add Name to Argument
|
add.name.to.argument.family=Add Name to Argument
|
||||||
add.name.to.argument.single=Add name to argument\: ''{0}''
|
add.name.to.argument.single=Add name to argument\: ''{0}''
|
||||||
add.name.to.argument.multiple=Add name to argument...
|
add.name.to.argument.multiple=Add name to argument...
|
||||||
|
|||||||
+15
-19
@@ -22,30 +22,26 @@ import org.jetbrains.kotlin.psi.JetSimpleNameExpression
|
|||||||
import org.jetbrains.kotlin.psi.JetPsiFactory
|
import org.jetbrains.kotlin.psi.JetPsiFactory
|
||||||
import java.util.regex.*
|
import java.util.regex.*
|
||||||
import org.jetbrains.kotlin.psi.JetStringTemplateEntryWithExpression
|
import org.jetbrains.kotlin.psi.JetStringTemplateEntryWithExpression
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.replaced
|
||||||
|
|
||||||
public class RemoveCurlyBracesFromTemplateIntention : JetSelfTargetingOffsetIndependentIntention<JetBlockStringTemplateEntry>(
|
public class RemoveCurlyBracesFromTemplateIntention : JetSelfTargetingOffsetIndependentIntention<JetBlockStringTemplateEntry>(javaClass(), "Remove curly braces from variable") {
|
||||||
"remove.unnecessary.curly.brackets.from.string.template", javaClass()) {
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
val INSTANCE = RemoveCurlyBracesFromTemplateIntention()
|
|
||||||
val pattern = Pattern.compile("[a-zA-Z0-9_].*")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun isApplicableTo(element: JetBlockStringTemplateEntry): Boolean {
|
override fun isApplicableTo(element: JetBlockStringTemplateEntry): Boolean {
|
||||||
|
if (element.getExpression() !is JetSimpleNameExpression) return false
|
||||||
val nextSiblingText = element.getNextSibling()?.getText()
|
val nextSiblingText = element.getNextSibling()?.getText()
|
||||||
if (nextSiblingText != null && pattern.matcher(nextSiblingText).matches()) return false
|
return nextSiblingText == null || !pattern.matcher(nextSiblingText).matches()
|
||||||
return element.getExpression() is JetSimpleNameExpression
|
|
||||||
}
|
|
||||||
|
|
||||||
fun convertIfApplicable(element: JetBlockStringTemplateEntry): JetStringTemplateEntryWithExpression {
|
|
||||||
if (!isApplicableTo(element)) return element
|
|
||||||
|
|
||||||
val name = (element.getExpression() as JetSimpleNameExpression).getReferencedName()
|
|
||||||
val newEntry = JetPsiFactory(element).createSimpleNameStringTemplateEntry(name)
|
|
||||||
return element.replace(newEntry) as JetStringTemplateEntryWithExpression
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun applyTo(element: JetBlockStringTemplateEntry, editor: Editor) {
|
override fun applyTo(element: JetBlockStringTemplateEntry, editor: Editor) {
|
||||||
convertIfApplicable(element)
|
applyTo(element)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun applyTo(element: JetBlockStringTemplateEntry): JetStringTemplateEntryWithExpression {
|
||||||
|
val name = (element.getExpression() as JetSimpleNameExpression).getReferencedName()
|
||||||
|
val newEntry = JetPsiFactory(element).createSimpleNameStringTemplateEntry(name)
|
||||||
|
return element.replaced(newEntry)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val pattern = Pattern.compile("[a-zA-Z0-9_].*")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -472,8 +472,9 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
|||||||
|
|
||||||
PsiElement parent = result != null ? result.getParent() : null;
|
PsiElement parent = result != null ? result.getParent() : null;
|
||||||
if (parent instanceof JetBlockStringTemplateEntry) {
|
if (parent instanceof JetBlockStringTemplateEntry) {
|
||||||
JetStringTemplateEntryWithExpression newEntry =
|
RemoveCurlyBracesFromTemplateIntention intention = new RemoveCurlyBracesFromTemplateIntention();
|
||||||
RemoveCurlyBracesFromTemplateIntention.INSTANCE.convertIfApplicable((JetBlockStringTemplateEntry) parent);
|
JetBlockStringTemplateEntry entry = (JetBlockStringTemplateEntry) parent;
|
||||||
|
JetStringTemplateEntryWithExpression newEntry = intention.isApplicableTo(entry) ? intention.applyTo(entry) : entry;
|
||||||
result = newEntry.getExpression();
|
result = newEntry.getExpression();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user