Subject: bug#65621: [PATCH] `dired-next-line' go to meaningful line

From: Shynur Xie <[email-masked]>
Date: Thu, 31 Aug 2023 18:15:09 +0000

The final patch is attached.  (See the end for how to test it.)

> Eli:
> it will need to be an opt-in feature.

By default, it's disabled.

> Dradams:
> Be sure to consider also the behavior when subdir listings are
> inserted in the buffer.

Considered.

> Stefan:
> But Drew's point about inserted subdirs would need to be addressed.

Addressed.

> Stefan
> I'd probably enable it if we had such an option, FWIW.

Stefan likes my original patch, so please set
`dired-cursor-goto-meaningful-line' to `bounded' and
`dired-headerline-is-meaningful' to nil.

> Dradams:
> it should move to the subdir header line, skipping only the blank
> line before it.
> `dired-(next|previous)-line' should move to header lines, as well as
> to file/dir lines.
> If you really DON'T want `n'|`p' to go to header lines then maybe
> set some option.

Have taken your advice.  You like what your Dired+ does, so please set
`dired-cursor-goto-meaningful-line' to `cycle' and
`dired-headerline-is-meaningful' to t.

___

- To Test It:

There is totally 4 (not 6) kinds of combinations of the 2 new options:

  1. (setq dired-cursor-goto-meaningful-line 'bounded
           dired-headerline-is-meaningful nil)
  2. (setq dired-cursor-goto-meaningful-line 'cycle
           dired-headerline-is-meaningful nil)
  3. (setq dired-cursor-goto-meaningful-line 'bounded
           dired-headerline-is-meaningful t)
  4. (setq dired-cursor-goto-meaningful-line 'cycle
           dired-headerline-is-meaningful t)

Test them in 3 kinds of dired buffers:

  1. regular dired buffer
  2. buffer inserted subdirs
  3. the option `dired-listing-switches' is an empty string, the
     directory is empty, and there is no subdir inserted.  I.e., there
     is no filename lines.  Only empty lines or header lines.

Move cursor from anywhere.