@Override
  public void executeWriteAction(@NotNull Editor editor, @NotNull Caret caret, DataContext dataContext) {
    CommandProcessor.getInstance().setCurrentCommandGroupId(EditorActionUtil.DELETE_COMMAND_GROUP);
    CopyPasteManager.getInstance().stopKillRings();

    boolean camelMode = editor.getSettings().isCamelWords();
    if (myNegateCamelMode) {
      camelMode = !camelMode;
    }

    if (editor.getSelectionModel().hasSelection()) {
      EditorModificationUtil.deleteSelectedText(editor);
      return;
    }

    final TextRange range = myIsUntilStart ? EditorActionUtil.getRangeToWordStart(editor, camelMode, true)
                                           : EditorActionUtil.getRangeToWordEnd(editor, camelMode, true);
    if (!range.isEmpty()) {
      editor.getDocument().deleteString(range.getStartOffset(), range.getEndOffset());
    }
  }
@Override
  public void executeWriteAction(@NotNull Editor editor, @NotNull Caret caret, DataContext dataContext)