@Override
  public boolean isApplicable(@NotNull CustomTemplateCallback callback, int offset, boolean wrapping) {
    PostfixTemplatesSettings settings = PostfixTemplatesSettings.getInstance();
    if (wrapping || !settings.isPostfixTemplatesEnabled()) {
      return false;
    }
    PsiFile contextFile = callback.getFile();
    Language language = PsiUtilCore.getLanguageAtOffset(contextFile, offset);
    CharSequence fileText = callback.getEditor().getDocument().getImmutableCharSequence();
    for (PostfixTemplateProvider provider : LanguagePostfixTemplate.LANG_EP.allForLanguage(language)) {
      if (StringUtil.isNotEmpty(computeTemplateKeyWithoutContextChecking(provider, fileText, offset + 1))) {
        return true;
      }
    }
    return false;
  }
@Override
  public boolean isApplicable(@NotNull CustomTemplateCallback callback, int offset, boolean wrapping)