More accurate deparenthesize (keeping annotations) in some IDE actions
So #KT-19004 Fixed
This commit is contained in:
@@ -68,14 +68,24 @@ public class KtPsiUtil {
|
||||
|
||||
@NotNull
|
||||
public static KtExpression safeDeparenthesize(@NotNull KtExpression expression) {
|
||||
KtExpression deparenthesized = deparenthesize(expression);
|
||||
return safeDeparenthesize(expression, false);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static KtExpression safeDeparenthesize(@NotNull KtExpression expression, boolean keepAnnotations) {
|
||||
KtExpression deparenthesized = deparenthesize(expression, keepAnnotations);
|
||||
return deparenthesized != null ? deparenthesized : expression;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static KtExpression deparenthesize(@Nullable KtExpression expression ) {
|
||||
public static KtExpression deparenthesize(@Nullable KtExpression expression) {
|
||||
return deparenthesize(expression, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static KtExpression deparenthesize(@Nullable KtExpression expression, boolean keepAnnotations) {
|
||||
while (true) {
|
||||
KtExpression baseExpression = deparenthesizeOnce(expression);
|
||||
KtExpression baseExpression = deparenthesizeOnce(expression, keepAnnotations);
|
||||
|
||||
if (baseExpression == expression) return baseExpression;
|
||||
expression = baseExpression;
|
||||
@@ -86,7 +96,14 @@ public class KtPsiUtil {
|
||||
public static KtExpression deparenthesizeOnce(
|
||||
@Nullable KtExpression expression
|
||||
) {
|
||||
if (expression instanceof KtAnnotatedExpression) {
|
||||
return deparenthesizeOnce(expression, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static KtExpression deparenthesizeOnce(
|
||||
@Nullable KtExpression expression, boolean keepAnnotations
|
||||
) {
|
||||
if (expression instanceof KtAnnotatedExpression && !keepAnnotations) {
|
||||
return ((KtAnnotatedExpression) expression).getBaseExpression();
|
||||
}
|
||||
else if (expression instanceof KtLabeledExpression) {
|
||||
|
||||
Reference in New Issue
Block a user