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);