@Override
    public void invoke(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
      SelectionModel selectionModel = editor.getSelectionModel();
      if (!selectionModel.hasSelection()) {
        selectionModel.selectLineAtCaret();
      }

      ZenCodingTemplate emmetCustomTemplate =
          CustomLiveTemplate.EP_NAME.findExtension(ZenCodingTemplate.class);
      if (emmetCustomTemplate != null) {
        new WrapWithCustomTemplateAction(
                emmetCustomTemplate, editor, file, ContainerUtil.newHashSet())
            .actionPerformed(null);
      } else if (!ApplicationManager.getApplication().isUnitTestMode()) {
        HintManager.getInstance()
            .showErrorHint(editor, "Cannot invoke Surround with Emmet in the current context");
      }
    }