From: Stefan Monnier <monnier@iro.umontreal.ca>
To: 6799@debbugs.gnu.org
Subject: bug#6799: 24.0.50; Please add dired-details.el to Emacs [patch]
Date: Mon, 11 Feb 2013 09:25:40 -0500 [thread overview]
Message-ID: <jwvzjzbx7tv.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87mwvbuus2@ch.ristopher.com> (Christopher Schmidt's message of "Mon, 11 Feb 2013 08:19:52 +0000 (GMT)")
> dired-(next|previous)-line use (forward|backward)-line for point
> movement. These functions ignore hidden lines and subsequent point
> movement by the editing loop does not do the right thing when point
> moves backwards over a hidden line.
Thanks. Then the code needs a clear comment about it, citing the
specific concrete case that it's trying to fix.
> (defvar use-case 0)
> (with-selected-window
> (or (get-buffer-window "*moose*")
> (progn
> (split-window-below)))
> (switch-to-buffer (get-buffer-create "*moose*"))
> (erase-buffer)
> (insert "Header\n"
> (propertize "Hidden\n" 'invisible t)
> "Stuff")
> (cl-ecase use-case
> (0
> (goto-char (point-min))
> (forward-line 1))
> (1
> (goto-char (point-max))
> (forward-line -1))
> (2
> (goto-char (point-min))
> (next-line 1))
> (3
> (goto-char (point-max))
> (next-line -1)))
> (prog1 use-case
> (setq use-case (% (1+ use-case) 4))))
> Put that in scratch, eval the first form, eval the second form four
> times in a row. Use case 1 does not work. The change you cited tries
> to work around this problem in dired.
I'm not sure what this shows: I get a buffer with two visible lines
("Header" and "Stuff"); case 0 moves point to just before "Stuff" and so
does case 1, and both seem right to my understanding of the code
you provided.
> I do not know whether dired-(next|previous)-line should use
> (next|previous)-line with nil-bound line-move-visual. AFAICT
> (next|previous)-line do not do the right thing either.
>>> + (if (derived-mode-p 'locate-mode)
>>> + (setq dired-hide-details-mode nil)
>> Could you explain why locate-mode needs such special treatment (here
>> and in locate-mode-map)? I'm mostly worried here that maybe some
>> other mode might require similar treatment.
> The buffer generated by M-x locate RET does not contain any "details" to
> hide. dired-hide-details-mode would be a no-op there.
A no-op doesn't sound like a bad thing.
> Locate buffers are not real dired buffer. locate-mode is an independent
> major mode whose keymap derives from dired-mode-map. locate runs
> dired-mode-hook despite the current buffer not being derived from
> dired-mode.
Indeed, it looks messy: it runs dired-mode-hook but not from
locate-mode. Of course, part of it is because dired-mode is still not
written as a proper mode function (e.g. it requires a `dir' argument),
so locate can't use it to derive from it.
> I think ignoring locate is better than complaining that
> dired-hide-details-mode is enabled in a buffer that is not derived
> from dired-mode.
If, as you say, dired-details would simply be a no-op in locate, then
I think the better option is to simply ignore locate, in the sense of
not doing anything special about, rather than write code that tries to
actively avoid running dired-details code in locate.
> I am not aware of any other mode that behaves that way.
I was thinking of virtual-dired (in dired-x), vc-dired (which doesn't
exist any more in Emacs, but there might still be similar thingies out
there), ...
Stefan
next prev parent reply other threads:[~2013-02-11 14:25 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-05 14:20 bug#6799: 24.0.50; Please add dired-details.el to Emacs [patch] Drew Adams
2011-01-28 23:08 ` Drew Adams
2011-03-13 3:28 ` Juanma Barranquero
2011-03-13 16:58 ` Drew Adams
2012-04-12 19:10 ` Lars Magne Ingebrigtsen
2012-04-12 20:05 ` Drew Adams
2012-04-25 15:46 ` Rob Giardina
2012-07-21 20:12 ` Drew Adams
2012-12-15 21:15 ` Christopher Schmidt
2012-12-15 22:17 ` Christopher Schmidt
2012-12-16 22:31 ` Stefan Monnier
2012-12-17 13:24 ` Christopher Schmidt
2013-02-10 15:02 ` Christopher Schmidt
2013-02-10 15:08 ` Christopher Schmidt
2013-02-11 3:37 ` Stefan Monnier
2013-02-11 8:19 ` Christopher Schmidt
2013-02-11 14:25 ` Stefan Monnier [this message]
2013-02-11 16:08 ` Christopher Schmidt
2013-02-11 17:58 ` Stefan Monnier
2013-02-11 18:07 ` Drew Adams
2013-02-11 19:52 ` Christopher Schmidt
2013-02-13 9:54 ` Christopher Schmidt
2013-02-15 15:25 ` Stefan Monnier
2013-02-15 18:44 ` Christopher Schmidt
2013-02-16 21:52 ` Juri Linkov
2013-02-16 22:58 ` Drew Adams
2013-02-17 10:05 ` Juri Linkov
2013-02-17 14:57 ` Christopher Schmidt
2013-02-18 9:49 ` Juri Linkov
2013-02-18 14:38 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvzjzbx7tv.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=6799@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).