@NotNull
  public List<TemplateImpl> findApplicableTemplates(@NotNull @NlsSafe String key) {
    List<TemplateImpl> result = new ArrayList<>();
    for (TemplateImpl candidate : getMatchingTemplates(key)) {
      if (isAvailableTemplate(candidate)) {
        result.add(candidate);
      }
    }
    return result;
  }
@NotNull
  public List<TemplateImpl> findApplicableTemplates(@NotNull @NlsSafe String key)