Java源码示例:com.intellij.codeInsight.daemon.QuickFixActionRegistrar
示例1
@Override
public void registerFixes(@NotNull PsiReference reference, @NotNull QuickFixActionRegistrar registrar) {
// FIXME: Re-enable quick fix for missing dependencies once it is functional again.
// https://github.com/pantsbuild/intellij-pants-plugin/issues/280
if (!ApplicationManager.getApplication().isUnitTestMode()) {
return;
}
for (PantsQuickFix quickFix : PantsUnresolvedReferenceFixFinder.findMissingDependencies(reference)) {
registrar.register(quickFix);
}
}
示例2
@Override
@RequiredReadAction
public void registerFixes(CSharpReferenceExpression expression, QuickFixActionRegistrar quickFixActionRegistrar)
{
if(UsingNamespaceFix.isValidReference(expression.kind(), expression))
{
quickFixActionRegistrar.register(new UsingNamespaceFix(expression));
}
CSharpLambdaResolveResult lambdaResolveResult = null;
List<ExpectedTypeInfo> expectedTypeRefs = ExpectedTypeVisitor.findExpectedTypeRefs(expression);
for(ExpectedTypeInfo expectedTypeRef : expectedTypeRefs)
{
DotNetTypeRef typeRef = expectedTypeRef.getTypeRef();
DotNetTypeResolveResult result = typeRef.resolve();
if(result instanceof CSharpLambdaResolveResult)
{
lambdaResolveResult = (CSharpLambdaResolveResult) result;
break;
}
}
if(lambdaResolveResult != null)
{
quickFixActionRegistrar.register(new CreateUnresolvedMethodByLambdaTypeFix(expression, lambdaResolveResult));
}
else
{
quickFixActionRegistrar.register(new CreateUnresolvedMethodFix(expression));
quickFixActionRegistrar.register(new CreateUnresolvedFieldFix(expression));
quickFixActionRegistrar.register(new CreateUnresolvedPropertyFix(expression));
quickFixActionRegistrar.register(new CreateUnresolvedEventFix(expression));
}
}
示例3
@Override
public void registerFixes(
@NotNull PsiJavaCodeReferenceElement referenceElement,
@NotNull QuickFixActionRegistrar quickFixActionRegistrar) {
List<IntentionAction> fixes = findFixesForReference(referenceElement);
fixes.forEach(quickFixActionRegistrar::register);
if (fixes.isEmpty() || Boolean.parseBoolean(System.getProperty(KEEP_DEFAULT_AUTODEPS))) {
// Don't unregister the default if:
// 1) We can't replace it with anything.
// 2) The user has requested to keep it.
return;
}
// If we think we can add both a Buck dependency and an IntelliJ module dependency,
// unregister the default fix, which only adds an IntelliJ module dependency.
quickFixActionRegistrar.unregister(
new Condition<IntentionAction>() {
private static final String ADD_MODULE_DEPENDENCY_FIX_CLASSNAME =
"com.intellij.codeInsight.daemon.impl.quickfix.AddModuleDependencyFix";
@Override
public boolean value(IntentionAction intentionAction) {
String className = intentionAction.getClass().getName();
if (ADD_MODULE_DEPENDENCY_FIX_CLASSNAME.equals(className)) {
return true;
}
return false;
}
});
}
示例4
public static <T extends PsiReference> void registerReferenceFixes(T ref, QuickFixActionRegistrar registrar) {
final boolean dumb = DumbService.getInstance(ref.getElement().getProject()).isDumb();
UnresolvedReferenceQuickFixProvider[] fixProviders = Extensions.getExtensions(EXTENSION_NAME);
Class<? extends PsiReference> referenceClass = ref.getClass();
for (UnresolvedReferenceQuickFixProvider each : fixProviders) {
if (dumb && !DumbService.isDumbAware(each)) {
continue;
}
if (ReflectionUtil.isAssignable(each.getReferenceClass(), referenceClass)) {
each.registerFixes(ref, registrar);
}
}
}
示例5
public abstract void registerFixes(T ref, QuickFixActionRegistrar registrar);