[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#21072: 24.5; inconsistent behaviour of `C-M-h (mark-defun)' in Emacs
From: |
Marcin Borkowski |
Subject: |
bug#21072: 24.5; inconsistent behaviour of `C-M-h (mark-defun)' in Emacs Lisp |
Date: |
Fri, 28 Oct 2016 07:35:07 +0200 |
User-agent: |
mu4e 0.9.17; emacs 26.0.50.1 |
On 2016-10-11, at 23:15, Drew Adams <drew.adams@oracle.com> wrote:
> 1. Respect of the optional arg even for non-interactive use is an
> improvement, I think.
Thanks.
> 2. And it seems that no code distributed with Emacs calls `mark-defun'
> with the optional arg. So no problem there. And it is unlikely
> that 3rd-party code would call with the arg and expect it to be
> ignored (as was the case before).
I would guess so.
> 3. With this at the top of *scratch* (note the blank line at top)
> and point between the comment and the defun, each of `M-- C-M-h'
> and `C-M-h' seems to loop indefinitely.
>
> -------------8<----------------
>
> ;; This buffer is for notes you don't want to save, and for Lisp evaluation.
> ;; If you want to create a file, visit that file with C-x C-f,
> ;; then enter the text in that file's own buffer.
>
> (defun a ()
> nil)
> -------------8<----------------
I'll investigate it, thanks for the report.
> 4. And with the same thing, but without the blank line at the top,
> both `M-- C-M-h' and `C-M-h' select the defun plus the comment,
> except that they do not select the first comment line. Intended?
No, see above.
> 5. `M-- C-M-h' and `C-M-h' always seem to select blank lines before
> the defun. Should they (what for)?
I'm pretty sure that they should select blank lines either before or
after the defun. I just chose the "before" way.
> 6. Interactively, I would rather see repeated use of `C-M-h', after an
> initial use of `C-M-h' with a negative prefix arg (e.g. `M-- C-M-h'),
> continue to select defuns backward. IOW, not need to use `M--'
> explicitly for each `C-M-h'.
>
> You can just hold down `C-M-h', to select multiple defuns forward.
> I would like to be able to do the same thing, but backward, by
> using `M-- C-M-h C-M-h C-M-h C-M-h...' (just hold down the chord).
>
> If you do that, then a negative prefix arg should not mean backward;
> it should just mean change direction (backward if previous command
> was not `mark-defun').
That's interesting. I'd like to implement it, but this will take time
(apart from other things, I have a 10-days-old son now:-).)
> 7. Someone will really need to test this with more than just Emacs Lisp.
> The comments talk about Python and nesting, etc.
Definitely. I do not feel competent enough for that, though. (I'm
pretty sure I've seen some ERT stuff for testing that with Python, I'll
check it.)
> HTH.
Yes, definitely - thanks a lot!
Best,
--
Marcin Borkowski