private void match(@NotNull PsiElement element) {
    final MatchContext context = getMatchContext();
    final MatchingStrategy strategy = context.getPattern().getStrategy();

    if (strategy.continueMatching(element)) {
      visitor.matchContext(SingleNodeIterator.create(element));
      return;
    }
    if (context.getOptions().isSearchInjectedCode()) {
      for (PsiElement el = element.getFirstChild(); el != null; el = el.getNextSibling()) {
        match(el);
      }
      if (element instanceof PsiLanguageInjectionHost) {
        InjectedLanguageManager.getInstance(project).enumerateEx(element, element.getContainingFile(), false,
                                                                 (injectedPsi, places) -> match(injectedPsi));
      }
    }
  }
private void match(@NotNull PsiElement element)