Subject: bug#69097: [PATCH] Add 'kill-region-or-word' command

From: Eli Zaretskii <[email-masked]>
Date: Tue, 03 Sep 2024 15:21:54 +0300

> From: Philip Kaludercic <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  Stefan Kangas <[email-masked]>,
>   Andrea Corallo <[email-masked]>,  [email-masked],  [email-masked],
>   [email-masked]
> Date: Mon, 02 Sep 2024 21:12:01 +0000
> 
> I had misremembered the last state of this patch.  It is easier to just
> have a tristate option.  Here is the updated proposal:

Thanks.

> +(defcustom kill-word-if-no-region nil

I would call this 'kill-region-dwim' instead.

> +  "Behaviour when `kill-region' is invoked without an active region.
> +If set to nil (default), then an error occurs and nothing is killed.  If
> +set to `emacs-word', then kill a the last word as defined by the current
> +major mode.  If set to `unix-word', then kill the last word in the style
> +of a shell like Bash, disregarding the major mode."
> +  :type '(choice (const :tag "Kill a word like `backward-kill-word'" emacs-word)
> +                 (const :tag "Kill a word like Bash would" unix-word)
> +                 (const :tag "Do not kill anything" nil))
> +  :group 'killing)

:version tag is missing.

> -Lisp programs should use this function for killing text.
> - (To delete text, use `delete-region'.)
> -Supply two arguments, character positions BEG and END indicating the
> - stretch of text to be killed.  If the optional argument REGION is
> - non-nil, the function ignores BEG and END, and kills the current
> - region instead.  Interactively, REGION is always non-nil, and so
> - this command always kills the current region."
> +Lisp programs should use this function for killing text.  (To delete
> +text, use `delete-region'.)  Supply two arguments, character positions
> +BEG and END indicating the stretch of text to be killed.  If the
> +optional argument REGION is non-nil, the function ignores BEG and END,
> +and kills the current region instead.  If REGION has the special value

Not sure why you decided to reformat this part.  Its formatting was
not random.

This also needs a NEWS entry.