mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
Java: introduce PsiArrayInitializerMemberValue.getInitializerCount() (IJ-CR-176760)
GitOrigin-RevId: d2cd802dbb3edff7218517221db96b39840e720a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f3f0542bd9
commit
ff4d693212
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.daemon.impl.quickfix;
|
||||
|
||||
import com.intellij.codeInsight.daemon.QuickFixBundle;
|
||||
@@ -33,8 +33,8 @@ public class MergeDuplicateAttributesFix extends PsiUpdateModCommandAction<PsiNa
|
||||
PsiAnnotationMemberValue value = attribute.getValue();
|
||||
if (value == null) continue;
|
||||
CommentTracker ct = new CommentTracker();
|
||||
if (value instanceof PsiArrayInitializerMemberValue) {
|
||||
if (((PsiArrayInitializerMemberValue)value).getInitializers().length != 0) {
|
||||
if (value instanceof PsiArrayInitializerMemberValue memberValue) {
|
||||
if (!memberValue.isEmpty()) {
|
||||
PsiElement lBrace = value.getFirstChild();
|
||||
PsiElement rBrace = value.getLastChild();
|
||||
PsiElement maybeTrailingComma = PsiTreeUtil.skipWhitespacesAndCommentsBackward(rBrace);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.intention.impl;
|
||||
|
||||
import com.intellij.codeInsight.daemon.QuickFixBundle;
|
||||
@@ -31,7 +31,7 @@ public class UnwrapArrayInitializerMemberValueAction extends PsiUpdateModCommand
|
||||
|
||||
@Override
|
||||
protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiArrayInitializerMemberValue arrayValue) {
|
||||
return arrayValue.getInitializers().length == 1 ? Presentation.of(CommonQuickFixBundle.message("fix.unwrap", myInitializerText)) : null;
|
||||
return arrayValue.getInitializerCount() == 1 ? Presentation.of(CommonQuickFixBundle.message("fix.unwrap", myInitializerText)) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.psi;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -28,4 +14,18 @@ public interface PsiArrayInitializerMemberValue extends PsiAnnotationMemberValue
|
||||
* @return the initializer array elements.
|
||||
*/
|
||||
PsiAnnotationMemberValue @NotNull [] getInitializers();
|
||||
|
||||
/**
|
||||
* @return the number of elements in this array initializer expression
|
||||
*/
|
||||
default int getInitializerCount() {
|
||||
return getInitializers().length;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@code true} if this array initializer member value contains no elements
|
||||
*/
|
||||
default boolean isEmpty() {
|
||||
return getInitializerCount() == 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,16 @@ public class PsiArrayInitializerMemberValueImpl extends CompositePsiElement impl
|
||||
return getChildrenAsPsiElements(ElementType.ANNOTATION_MEMBER_VALUE_BIT_SET, PsiAnnotationMemberValue.ARRAY_FACTORY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInitializerCount() {
|
||||
return countChildren(ElementType.ANNOTATION_MEMBER_VALUE_BIT_SET);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return findChildByType(ElementType.ANNOTATION_MEMBER_VALUE_BIT_SET) == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ASTNode findChildByRole(int role) {
|
||||
LOG.assertTrue(ChildRole.isUnique(role));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.groovy.lang.psi.api.auxiliary;
|
||||
|
||||
import com.intellij.navigation.NavigationItem;
|
||||
@@ -22,6 +22,7 @@ public interface GrListOrMap extends UserDataHolderEx, Cloneable, Iconable, PsiE
|
||||
|
||||
boolean isMap();
|
||||
|
||||
@Override
|
||||
boolean isEmpty();
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.groovy.lang.psi.impl.auxiliary.annotation;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
@@ -43,6 +43,23 @@ public class GrAnnotationArrayInitializerImpl extends GroovyPsiElementImpl imple
|
||||
return result.toArray(new GrAnnotationMemberValue[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInitializerCount() {
|
||||
int count = 0;
|
||||
for (PsiElement cur = getFirstChild(); cur != null; cur = cur.getNextSibling()) {
|
||||
if (cur instanceof GrAnnotationMemberValue) count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
for (PsiElement cur = getFirstChild(); cur != null; cur = cur.getNextSibling()) {
|
||||
if (cur instanceof GrAnnotationMemberValue) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ASTNode addInternal(@NotNull ASTNode first, @NotNull ASTNode last, ASTNode anchor, Boolean before) {
|
||||
final GrAnnotationMemberValue[] initializers = getInitializers();
|
||||
|
||||
@@ -303,7 +303,7 @@ class JavaAnnotationArrayInitializerUCallExpression(
|
||||
override val valueArgumentCount: Int
|
||||
get() {
|
||||
if (valueArgumentCountLazy == Int.MIN_VALUE) {
|
||||
valueArgumentCountLazy = sourcePsi.initializers.size
|
||||
valueArgumentCountLazy = sourcePsi.initializerCount
|
||||
}
|
||||
return valueArgumentCountLazy
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user