From fb5023db6b216c82c985ea67ce65104f0571b96f Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Sun, 12 May 2024 19:48:00 +0200 Subject: [PATCH] [project] fixing simple "zero-tolerance inspection" problems GitOrigin-RevId: a2ed3b1983adba46cd998d7bd1f7f3e7a165d8c5 --- .../intellij/util/xml/ui/JavaControlBase.java | 62 +++++++++++++++++ .../intellij/util/xml/ui/PsiClassControl.java | 66 +------------------ .../intellij/util/xml/ui/PsiTypeControl.java | 13 ++-- .../JpsLibraryPropertiesSerializer.java | 2 +- .../CustomChangelistTodosTreeBuilder.java | 8 +-- .../shared/NamingConventionInspections.kt | 3 +- .../com/intellij/util/xml/ui/BaseControl.java | 2 +- 7 files changed, 78 insertions(+), 78 deletions(-) create mode 100644 java/java-impl/src/com/intellij/util/xml/ui/JavaControlBase.java diff --git a/java/java-impl/src/com/intellij/util/xml/ui/JavaControlBase.java b/java/java-impl/src/com/intellij/util/xml/ui/JavaControlBase.java new file mode 100644 index 000000000000..395f98f0df63 --- /dev/null +++ b/java/java-impl/src/com/intellij/util/xml/ui/JavaControlBase.java @@ -0,0 +1,62 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.util.xml.ui; + +import com.intellij.ide.util.ClassFilter; +import com.intellij.ide.util.TreeClassChooser; +import com.intellij.ide.util.TreeClassChooserFactory; +import com.intellij.java.JavaBundle; +import com.intellij.psi.JavaPsiFacade; +import com.intellij.psi.PsiClass; +import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.ui.ReferenceEditorWithBrowseButton; +import com.intellij.util.xml.DomElement; +import com.intellij.util.xml.ExtendClass; +import com.intellij.util.xml.GenericDomValue; + +import javax.swing.*; + +abstract class JavaControlBase extends EditorTextFieldControl { + protected JavaControlBase(DomWrapper domWrapper, boolean commitOnEveryChange) { + super(domWrapper, commitOnEveryChange); + } + + protected void setValue(PsiClass value) { + super.setValue(value.getQualifiedName()); + } + + protected static T initReferenceEditorWithBrowseButton( + T boundedComponent, + ReferenceEditorWithBrowseButton editor, + JavaControlBase control + ) { + boundedComponent.removeAll(); + boundedComponent.add(editor); + GlobalSearchScope resolveScope = control.getDomWrapper().getResolveScope(); + editor.addActionListener(e -> { + DomElement domElement = control.getDomElement(); + ExtendClass extend = domElement.getAnnotation(ExtendClass.class); + PsiClass baseClass = null; + ClassFilter filter = null; + if (extend != null) { + if (extend.value().length == 1) baseClass = JavaPsiFacade.getInstance(control.getProject()).findClass(extend.value()[0], resolveScope); + if (extend.instantiatable()) { + filter = ClassFilter.INSTANTIABLE; + } + } + + PsiClass initialClass = null; + if (domElement instanceof GenericDomValue && ((GenericDomValue)domElement).getValue() instanceof PsiClass psiClass) { + initialClass = psiClass; + } + + TreeClassChooser chooser = TreeClassChooserFactory.getInstance(control.getProject()) + .createInheritanceClassChooser(JavaBundle.message("choose.class"), resolveScope, baseClass, initialClass, filter); + chooser.showDialog(); + PsiClass psiClass = chooser.getSelected(); + if (psiClass != null) { + control.setValue(psiClass); + } + }); + return boundedComponent; + } +} diff --git a/java/java-impl/src/com/intellij/util/xml/ui/PsiClassControl.java b/java/java-impl/src/com/intellij/util/xml/ui/PsiClassControl.java index b9eca2f6c1bd..2eed68dd6839 100644 --- a/java/java-impl/src/com/intellij/util/xml/ui/PsiClassControl.java +++ b/java/java-impl/src/com/intellij/util/xml/ui/PsiClassControl.java @@ -1,38 +1,19 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.util.xml.ui; -import com.intellij.ide.util.ClassFilter; -import com.intellij.ide.util.TreeClassChooser; -import com.intellij.ide.util.TreeClassChooserFactory; -import com.intellij.java.JavaBundle; import com.intellij.openapi.editor.Document; -import com.intellij.openapi.module.ModuleUtil; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.psi.IntentionFilterOwner; -import com.intellij.psi.JavaPsiFacade; -import com.intellij.psi.PsiClass; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.impl.source.PsiCodeFragmentImpl; -import com.intellij.psi.search.GlobalSearchScope; import com.intellij.ui.EditorTextField; import com.intellij.ui.JavaReferenceEditorUtil; import com.intellij.ui.ReferenceEditorWithBrowseButton; -import com.intellij.util.xml.DomElement; -import com.intellij.util.xml.ExtendClass; -import com.intellij.util.xml.GenericDomValue; import org.jetbrains.annotations.NotNull; -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -public class PsiClassControl extends EditorTextFieldControl { - - public PsiClassControl(final DomWrapper domWrapper) { - super(domWrapper); - } - - public PsiClassControl(final DomWrapper domWrapper, final boolean commitOnEveryChange) { +public class PsiClassControl extends JavaControlBase { + public PsiClassControl(DomWrapper domWrapper, boolean commitOnEveryChange) { super(domWrapper, commitOnEveryChange); } @@ -54,45 +35,4 @@ public class PsiClassControl extends EditorTextFieldControl { fragment.putUserData(ModuleUtil.KEY_MODULE, getDomWrapper().getExistingDomElement().getModule()); return initReferenceEditorWithBrowseButton(boundedComponent, editor, this); } - - protected static T initReferenceEditorWithBrowseButton(final T boundedComponent, - final ReferenceEditorWithBrowseButton editor, - final EditorTextFieldControl control) { - boundedComponent.removeAll(); - boundedComponent.add(editor); - final GlobalSearchScope resolveScope = control.getDomWrapper().getResolveScope(); - editor.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - - final DomElement domElement = control.getDomElement(); - ExtendClass extend = domElement.getAnnotation(ExtendClass.class); - PsiClass baseClass = null; - ClassFilter filter = null; - if (extend != null) { - if (extend.value().length == 1) baseClass = JavaPsiFacade.getInstance(control.getProject()).findClass(extend.value()[0], resolveScope); - if (extend.instantiatable()) { - filter = ClassFilter.INSTANTIABLE; - } - } - - PsiClass initialClass = null; - if (domElement instanceof GenericDomValue) { - final Object value = ((GenericDomValue)domElement).getValue(); - if (value instanceof PsiClass) - initialClass = (PsiClass)value; - } - - TreeClassChooser chooser = TreeClassChooserFactory.getInstance(control.getProject()) - .createInheritanceClassChooser(JavaBundle.message("choose.class"), resolveScope, baseClass, initialClass, filter); - chooser.showDialog(); - final PsiClass psiClass = chooser.getSelected(); - if (psiClass != null) { - control.setValue(psiClass.getQualifiedName()); - } - } - }); - return boundedComponent; - } - } diff --git a/java/java-impl/src/com/intellij/util/xml/ui/PsiTypeControl.java b/java/java-impl/src/com/intellij/util/xml/ui/PsiTypeControl.java index bf7cba650fa0..f260de63d55b 100644 --- a/java/java-impl/src/com/intellij/util/xml/ui/PsiTypeControl.java +++ b/java/java-impl/src/com/intellij/util/xml/ui/PsiTypeControl.java @@ -13,9 +13,8 @@ import com.intellij.util.xml.DomElement; import com.intellij.util.xml.JvmPsiTypeConverterImpl; import org.jetbrains.annotations.NotNull; -public class PsiTypeControl extends EditorTextFieldControl { - - public PsiTypeControl(final DomWrapper domWrapper, final boolean commitOnEveryChange) { +public class PsiTypeControl extends JavaControlBase { + public PsiTypeControl(DomWrapper domWrapper, boolean commitOnEveryChange) { super(domWrapper, commitOnEveryChange); } @@ -58,10 +57,8 @@ public class PsiTypeControl extends EditorTextFieldControl { if (boundedComponent == null) { boundedComponent = new PsiTypePanel(); } - return PsiClassControl.initReferenceEditorWithBrowseButton(boundedComponent, - new ReferenceEditorWithBrowseButton(null, project, - s -> JavaReferenceEditorUtil.createTypeDocument(s, project), ""), this); + return initReferenceEditorWithBrowseButton( + boundedComponent, + new ReferenceEditorWithBrowseButton(null, project, s -> JavaReferenceEditorUtil.createTypeDocument(s, project), ""), this); } - - } diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java index c30924d1f40d..a818ae9bbea0 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java @@ -20,7 +20,7 @@ public abstract class JpsLibraryPropertiesSerializer

exten @Deprecated public P loadProperties(@Nullable Element propertiesElement) { throw new AbstractMethodError(); - }; + } public P loadProperties(@Nullable Element propertiesElement, @NotNull JpsPathMapper pathMapper) { return loadProperties(propertiesElement); diff --git a/platform/vcs-impl/src/com/intellij/ide/todo/CustomChangelistTodosTreeBuilder.java b/platform/vcs-impl/src/com/intellij/ide/todo/CustomChangelistTodosTreeBuilder.java index cb14c182bb51..8c51af22550c 100644 --- a/platform/vcs-impl/src/com/intellij/ide/todo/CustomChangelistTodosTreeBuilder.java +++ b/platform/vcs-impl/src/com/intellij/ide/todo/CustomChangelistTodosTreeBuilder.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 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-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.todo; import com.intellij.openapi.project.Project; @@ -20,7 +20,7 @@ import java.util.List; import java.util.Set; public abstract class CustomChangelistTodosTreeBuilder extends TodoTreeBuilder { - public static final TodoItem[] EMPTY_ITEMS = new TodoItem[0]; + public static final TodoItem[] EMPTY_ITEMS = TodoItem.EMPTY_ARRAY; private final PsiTodoSearchHelper myCustomPsiTodoSearchHelper; @@ -110,7 +110,7 @@ public abstract class CustomChangelistTodosTreeBuilder extends TodoTreeBuilder { result.add(todoItem); } } - return result.isEmpty() ? EMPTY_ITEMS : result.toArray(new TodoItem[0]); + return result.isEmpty() ? EMPTY_ITEMS : result.toArray(TodoItem.EMPTY_ARRAY); } @Override @@ -138,7 +138,7 @@ public abstract class CustomChangelistTodosTreeBuilder extends TodoTreeBuilder { synchronized (myMap) { final Collection todoItems = myMap.get(file); - return todoItems.isEmpty() ? EMPTY_ITEMS : todoItems.toArray(new TodoItem[0]); + return todoItems.isEmpty() ? EMPTY_ITEMS : todoItems.toArray(TodoItem.EMPTY_ARRAY); } } } diff --git a/plugins/kotlin/code-insight/inspections-shared/src/org/jetbrains/kotlin/idea/codeInsight/inspections/shared/NamingConventionInspections.kt b/plugins/kotlin/code-insight/inspections-shared/src/org/jetbrains/kotlin/idea/codeInsight/inspections/shared/NamingConventionInspections.kt index 7db243572ca6..d58eaf0e8291 100644 --- a/plugins/kotlin/code-insight/inspections-shared/src/org/jetbrains/kotlin/idea/codeInsight/inspections/shared/NamingConventionInspections.kt +++ b/plugins/kotlin/code-insight/inspections-shared/src/org/jetbrains/kotlin/idea/codeInsight/inspections/shared/NamingConventionInspections.kt @@ -22,8 +22,8 @@ import org.jdom.Element import org.jetbrains.annotations.NonNls import org.jetbrains.kotlin.idea.base.resources.KotlinBundle import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection -import org.jetbrains.kotlin.idea.quickfix.RenameIdentifierFix import org.jetbrains.kotlin.idea.core.packageMatchesDirectoryOrImplicit +import org.jetbrains.kotlin.idea.quickfix.RenameIdentifierFix import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject @@ -363,6 +363,7 @@ class LocalVariableNameInspection : PropertyNameInspectionBase( override fun getNamingRules(): Array = arrayOf(START_LOWER, NO_UNDERSCORES, NO_BAD_CHARACTERS) } +@Suppress("InspectionDescriptionNotFoundInspection") private class PackageNameInspectionLocal( val parentInspection: InspectionProfileEntry, val namingSettings: NamingConventionInspectionSettings diff --git a/xml/dom-openapi/src/com/intellij/util/xml/ui/BaseControl.java b/xml/dom-openapi/src/com/intellij/util/xml/ui/BaseControl.java index e3f1f6f089c0..401c037a3ead 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/ui/BaseControl.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/ui/BaseControl.java @@ -205,7 +205,7 @@ public abstract class BaseControl extends DomUICont myDomWrapper.setValue("".equals(value) ? null : value); } - protected final Project getProject() { + public final Project getProject() { return myDomWrapper.getProject(); }