package com.jetbrains.lang.dart.ide.surroundWith.expression; import com.intellij.psi.PsiElement; import com.jetbrains.lang.dart.psi.DartNamedArgument; import org.jetbrains.annotations.NotNull; public class DartWithBracketsExpressionSurrounder extends DartWithExpressionSurrounder { public boolean isApplicable(@NotNull PsiElement[] elements) { // Limit this to named arguments; the intent is to convert a Flutter child: param to children:, which may involve creating red code. return super.isApplicable(elements) && elements[0].getParent() instanceof DartNamedArgument; } @Override public String getTemplateDescription() { return "[expr]"; } @Override protected String getTemplateText(PsiElement expr) { return expr.textContains('\n') ? "[\n" + expr.getText() + ",]\n" : "[" + expr.getText() + "]"; } }