@Nullable
 public static PsiElement resolveMixin(@NotNull PsiElement base, @NotNull String name) {
   CssResolveProcessor processor = CssPluginsFacade.getMixinProcessor(base, name);
   if (processor.executeInScope(base)) {
     processFile(
         base.getContainingFile(),
         processor,
         ResolveState.initial().put(PROCESSED_PATHS, new HashSet<String>()));
   }
   return processor.getResult();
 }
  private static boolean processFile(
      final PsiFile file, final CssResolveProcessor processor, final ResolveState state) {
    if (!pushPath(file, state)) {
      // Already visited, skip
      return true;
    }

    // Process declarations in file
    if (!PsiTreeUtil.processElements(file, processor)) {
      return false;
    }

    // Process imports in file
    CssImport cssImport;
    while ((cssImport = processor.popImport()) != null) {
      PsiElement resolvedImport = cssImport.resolve();
      if (resolvedImport instanceof PsiFile) {
        if (!processFile((PsiFile) resolvedImport, processor, state)) {
          return false;
        }
      }
    }

    // Recurse on files importing this file
    CssUtils.getPsiSearchHelper(file.getProject())
        .processElementsWithWord(
            new TextOccurenceProcessor() {
              public boolean execute(PsiElement element, int offsetInElement) {
                if (element.getParent().getParent() instanceof CssImport) {
                  CssImport cssImport = (CssImport) element.getParent().getParent();
                  String uri = cssImport.getUriString();
                  if (uri.endsWith(file.getName())) {
                    PsiElement importedFile = cssImport.resolve();
                    if (file == importedFile) {
                      if (!processFile(cssImport.getContainingFile(), processor, state)) {
                        return false;
                      }
                    }
                  }
                }
                return true;
              }
            },
            getResolveSearchScope(file),
            file.getName(),
            (short) (UsageSearchContext.IN_CODE | UsageSearchContext.IN_STRINGS),
            true);

    return true;
  }