emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CUA property not set for multiple functions


From: M Jared Finder
Subject: Re: CUA property not set for multiple functions
Date: Mon, 26 Sep 2005 08:59:58 -0700
User-agent: Debian Thunderbird 1.0.6 (X11/20050802)

Kim F. Storm wrote:

This list can be further reduced to:

down-list
mark-word
search-forward
mark-sexp
back-to-indentation
end-of-defun
forward-list
backward-up-list
forward-sexp
backward-list
backward-sexp
beginning-of-defun

I will add CUA properties for these in CVS.

Thank you. I will move setting the CUA property to the bugfixes section of my .emacs.

You may argue that if a user binds one of the other commands that may
be regarded as a CUA movement command to a single key, CUA will not
work for that key -- which is true, but then the user will have to add
the necessary CUA property too.  I don't want to "pollude" the sources
with properties that are only needed in theory.  But if you know of
some specific commands where it may be relevant, pls. tell me and I
will consider them case by case.

I do disagree with this logic.

You'd want to eliminate commands where the interactive call prompts the user for input (like search-backward-regexp) or commands that most likely will change the buffer (like find-tag), but not any other command. If I rebind a command to a single key sequence, I do not expect to have to also set a property of the command, would you expect that?

There's another advantage. "Polluting" the source code also has the advantage of implicitly documenting that I have to set the property. When writing code, I rely on existing Emacs Lisp code to document the implicit assumptions that have to be made (setting this property is not explicitly documented ANYWHERE.) When I write forward-my-darling and it does not work properly with CUA, I'd look at the code for some other forward command, like forward-page. If forward-page has (put 'forward-page 'CUA 'move) right near it will, I will immediately notice that difference and be able to fix it.

All of the following functions should have the CUA property set, but do not. (I have done only the most trivial of removals; I'm sure some commands here should not have the CUA property set.) Please consider each of these:

Buffer-menu-backup-unmark
Buffer-menu-delete-backwards
Buffer-menu-unmark
View-goto-line
View-goto-percent
backward-button
backward-page
backward-to-indentation
beginning-of-defun-raw
beginning-of-line-text
comint-bol-or-process-mark
comint-goto-process-mark
comint-next-prompt
comint-previous-prompt
ebrowse-back-in-position-stack
ebrowse-forward-in-position-stack
expand-jump-to-next-slot
expand-jump-to-previous-slot
forward-button
forward-line
forward-page
forward-to-indentation
goto-next-locus
highlight-changes-next-change
highlight-changes-previous-change
ibuffer-backward-filter-group
ibuffer-backwards-next-marked
ibuffer-clear-filter-groups
ibuffer-delete-saved-filter-groups
ibuffer-forward-filter-group
ibuffer-forward-next-marked
ibuffer-jump-to-filter-group
jump-to-register
jump-to-register-compatibility-binding
move-to-column
move-to-tab-stop
next-completion
previous-completion
register-to-point
scan-buf-next-region
speedbar-backward-list
speedbar-forward-list
speedbar-navigate-list
speedbar-next
speedbar-prev
speedbar-restricted-next
speedbar-restricted-prev
table-backward-cell
table-forward-cell
up-list
widget-backward
widget-forward

  -- MJF




reply via email to

[Prev in Thread] Current Thread [Next in Thread]