mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
implicitly written field: fix to register annotations (IDEA-164948)
This commit is contained in:
@@ -241,6 +241,9 @@ public abstract class QuickFixFactory {
|
||||
@NotNull
|
||||
public abstract IntentionAction createAddToDependencyInjectionAnnotationsFix(@NotNull Project project, @NotNull String qualifiedName, @NotNull String element);
|
||||
|
||||
@NotNull
|
||||
public abstract IntentionAction createAddToImplicitlyWrittenFieldsFix(Project project, @NotNull String qualifiedName);
|
||||
|
||||
@NotNull
|
||||
public abstract IntentionAction createCreateGetterOrSetterFix(boolean createGetter, boolean createSetter, @NotNull PsiField field);
|
||||
|
||||
|
||||
+1
-1
@@ -336,7 +336,7 @@ class PostHighlightingVisitor {
|
||||
quickFixFactory.createCreateConstructorParameterFromFieldFix(field));
|
||||
}
|
||||
SpecialAnnotationsUtilBase.createAddToSpecialAnnotationFixes(field, annoName -> {
|
||||
QuickFixAction.registerQuickFixAction(info, quickFixFactory.createAddToDependencyInjectionAnnotationsFix(project, annoName, "fields"));
|
||||
QuickFixAction.registerQuickFixAction(info, quickFixFactory.createAddToImplicitlyWrittenFieldsFix(project, annoName));
|
||||
return true;
|
||||
});
|
||||
return info;
|
||||
|
||||
+7
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2016 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.
|
||||
@@ -547,6 +547,12 @@ public class EmptyQuickFixFactory extends QuickFixFactory {
|
||||
return QuickFixes.EMPTY_FIX;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public IntentionAction createAddToImplicitlyWrittenFieldsFix(Project project, @NotNull String qualifiedName) {
|
||||
return QuickFixes.EMPTY_FIX;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public IntentionAction createCreateGetterOrSetterFix(boolean b, boolean b2, @NotNull PsiField psiField) {
|
||||
|
||||
+37
@@ -18,11 +18,14 @@ package com.intellij.codeInspection.ex;
|
||||
import com.intellij.ToolExtensionPoints;
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
|
||||
import com.intellij.codeInsight.daemon.QuickFixBundle;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInspection.reference.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.extensions.ExtensionPoint;
|
||||
import com.intellij.openapi.extensions.ExtensionPointListener;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
@@ -33,6 +36,7 @@ import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.JDOMExternalizableStringList;
|
||||
import com.intellij.profile.codeInspection.ProjectInspectionProfileManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.xmlb.SkipDefaultsSerializationFilter;
|
||||
@@ -645,6 +649,39 @@ public abstract class EntryPointsManagerBase extends EntryPointsManager implemen
|
||||
public boolean readWriteAccess = true;
|
||||
public String pattern = "";
|
||||
|
||||
}
|
||||
|
||||
public class AddImplicitlyWriteAnnotation implements IntentionAction {
|
||||
private final String myQualifiedName;
|
||||
|
||||
public AddImplicitlyWriteAnnotation(String qualifiedName) {myQualifiedName = qualifiedName;}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getText() {
|
||||
return QuickFixBundle.message("fix.unused.symbol.injection.text", "fields", myQualifiedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getFamilyName() {
|
||||
return QuickFixBundle.message("fix.unused.symbol.injection.family");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable(@NotNull Project project1, Editor editor, PsiFile file) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
|
||||
myWriteAnnotations.add(myQualifiedName);
|
||||
ProjectInspectionProfileManager.getInstance(project).fireProfileChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean startInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -681,6 +681,13 @@ public class QuickFixFactoryImpl extends QuickFixFactory {
|
||||
entryPointsManager.ADDITIONAL_ANNOTATIONS, qualifiedName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public IntentionAction createAddToImplicitlyWrittenFieldsFix(Project project, @NotNull final String qualifiedName) {
|
||||
EntryPointsManagerBase entryPointsManagerBase = EntryPointsManagerBase.getInstance(project);
|
||||
return entryPointsManagerBase.new AddImplicitlyWriteAnnotation(qualifiedName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public IntentionAction createCreateGetterOrSetterFix(boolean createGetter, boolean createSetter, @NotNull PsiField field) {
|
||||
|
||||
Reference in New Issue
Block a user