mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 21:11:28 +07:00
IDEA-76218 Allow "Show static members after instance qualifier" to depend on AccessStaticViaInstance
This commit is contained in:
@@ -18,6 +18,8 @@ package com.intellij.codeInsight.completion.scope;
|
||||
import com.intellij.codeInsight.CodeInsightSettings;
|
||||
import com.intellij.codeInsight.completion.CompletionUtil;
|
||||
import com.intellij.codeInsight.daemon.ImplicitUsageProvider;
|
||||
import com.intellij.codeInspection.SuppressManager;
|
||||
import com.intellij.codeInspection.accessStaticViaInstance.AccessStaticViaInstance;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -52,7 +54,6 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
|
||||
private final List<CompletionElement> myResults;
|
||||
private final PsiElement myElement;
|
||||
private final PsiElement myScope;
|
||||
private CodeInsightSettings mySettings = null;
|
||||
private final ElementFilter myFilter;
|
||||
private boolean myMembersFlag = false;
|
||||
private PsiType myQualifierType = null;
|
||||
@@ -60,10 +61,10 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
|
||||
private final Condition<String> myMatcher;
|
||||
private final boolean myCheckAccess;
|
||||
private final Set<PsiField> myNonInitializedFields = new HashSet<PsiField>();
|
||||
private boolean myAllowStaticWithInstanceQualifier;
|
||||
|
||||
public JavaCompletionProcessor(PsiElement element, ElementFilter filter, final boolean checkAccess, boolean checkInitialized, @Nullable Condition<String> nameCondition) {
|
||||
myCheckAccess = checkAccess;
|
||||
mySettings = CodeInsightSettings.getInstance();
|
||||
myResults = new ArrayList<CompletionElement>();
|
||||
myElement = element;
|
||||
myMatcher = nameCondition;
|
||||
@@ -108,6 +109,11 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
|
||||
if (checkInitialized) {
|
||||
myNonInitializedFields.addAll(getNonInitializedFields(element));
|
||||
}
|
||||
|
||||
myAllowStaticWithInstanceQualifier = CodeInsightSettings.getInstance().SHOW_STATIC_AFTER_INSTANCE ||
|
||||
SuppressManager.getInstance()
|
||||
.isSuppressedFor(element, AccessStaticViaInstance.ACCESS_STATIC_VIA_INSTANCE);
|
||||
|
||||
}
|
||||
|
||||
private static boolean isInitializedImplicitly(PsiField field) {
|
||||
@@ -202,7 +208,7 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!mySettings.SHOW_STATIC_AFTER_INSTANCE
|
||||
if (!myAllowStaticWithInstanceQualifier
|
||||
&& modifierListOwner.hasModifierProperty(PsiModifier.STATIC)
|
||||
&& !myMembersFlag) {
|
||||
// according settings we don't need to process such fields/methods
|
||||
|
||||
@@ -31,6 +31,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
* Date: 15-Nov-2005
|
||||
*/
|
||||
public class AccessStaticViaInstance extends BaseJavaLocalInspectionTool {
|
||||
|
||||
public static final String ACCESS_STATIC_VIA_INSTANCE = "AccessStaticViaInstance";
|
||||
|
||||
@NotNull
|
||||
public String getGroupDisplayName() {
|
||||
return "";
|
||||
@@ -44,7 +47,7 @@ public class AccessStaticViaInstance extends BaseJavaLocalInspectionTool {
|
||||
@NotNull
|
||||
@NonNls
|
||||
public String getShortName() {
|
||||
return "AccessStaticViaInstance";
|
||||
return ACCESS_STATIC_VIA_INSTANCE;
|
||||
}
|
||||
|
||||
public boolean isEnabledByDefault() {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
@SuppressWarnings("AccessStaticViaInstance")
|
||||
public class KeyVO {
|
||||
{
|
||||
new Cli().fo<caret>
|
||||
}
|
||||
}
|
||||
|
||||
class Cli {
|
||||
static void foo() {}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
@SuppressWarnings("AccessStaticViaInstance")
|
||||
public class KeyVO {
|
||||
{
|
||||
new Cli().foo();<caret>
|
||||
}
|
||||
}
|
||||
|
||||
class Cli {
|
||||
static void foo() {}
|
||||
}
|
||||
@@ -461,6 +461,13 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
}
|
||||
|
||||
public void testBreakInIfCondition() throws Throwable { doTest(); }
|
||||
public void testAccessStaticViaInstance() throws Throwable { doTest(); }
|
||||
|
||||
public void _testAccessStaticViaInstanceSecond() throws Throwable {
|
||||
doAntiTest()
|
||||
complete()
|
||||
checkResult()
|
||||
}
|
||||
|
||||
public void testNoThisInComment() throws Throwable { doAntiTest() }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user