unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#13411: 24.2.91; Sorting in Buffer Menu Mode
@ 2013-01-10 18:40 Aaron S. Hawley
  2013-01-30 19:53 ` Glenn Morris
  2021-07-15 15:37 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 4+ messages in thread
From: Aaron S. Hawley @ 2013-01-10 18:40 UTC (permalink / raw)
  To: 13411

The old Buffer Menu Mode would sort only on 4 columns:

 M-x buffer-menu -- sort by display time
 M-2 M-x Buffer-menu-sort -- sort by name
 M-3 M-x Buffer-menu-sort -- sort by size (ascending)
 M-4 M-x Buffer-menu-sort -- sort by mode
 M-5 M-x Buffer-menu-sort -- sort by file name
 M-x Buffer-menu-sort -- go back to sorting by display time

The new Bufer Menu Mode can sort on 7 fields:

 M-x buffer-menu -- sort by display time
 M-0 M-x Buffer-menu-sort -- sort by current buffer (there is none!)
 M-1 M-x Buffer-menu-sort -- sort by read-only
 M-2 M-x Buffer-menu-sort -- sort by modification flag
 M-3 M-x Buffer-menu-sort -- sort by name
 M-4 M-x Buffer-menu-sort -- sort by size (descending)
 M-5 M-x Buffer-menu-sort -- sort by mode
 M-6 M-x Buffer-menu-sort -- sort by file name
 M-x Buffer-menu-sort -- sort by the column at point

Repeating any of these twice reverses the order.  If sorting by size
descending, then sorting by size again switches to ascending.

I can live with these changes except for one:  How do I disable
sorting so that it goes back to the default order of buffer-list?  The
only way to do is to kill the buffer for Buffer Menu and run C-x C-b
to reopen it.

 M-x buffer-menu -- update the list, but keep the sort
 C-x k RET M-x buffer-menu -- go back to sorting by display time

Maybe it could with the M-0 argument since it's not being used.  Or
maybe a M-- argument since negative columns don't exist?  Although,
with 7 columns to remember now, maybe sorting the second to last
column with M-- M-2 should be available.

Otherwise looking forward to Emacs 24.3!
aaron

-- 
In general, we reserve the right to have a poor
memory--the computer, however, is supposed to
remember!  Poor computer.  -- Guy Lewis Steele Jr.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13411: 24.2.91; Sorting in Buffer Menu Mode
  2013-01-10 18:40 bug#13411: 24.2.91; Sorting in Buffer Menu Mode Aaron S. Hawley
@ 2013-01-30 19:53 ` Glenn Morris
  2013-02-01  2:41   ` Aaron S. Hawley
  2021-07-15 15:37 ` Lars Ingebrigtsen
  1 sibling, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2013-01-30 19:53 UTC (permalink / raw)
  To: Aaron S. Hawley; +Cc: 13411

"Aaron S. Hawley" wrote:

> How do I disable sorting so that it goes back to the default order of
> buffer-list?

This is a tabulated list mode issue.
Maybe you can just (setq tabulated-list-sort-key nil); followed by g.
There's no UI for that at present AFAICS.

If the list of items is slow to generate, it may be better to cached the
original order and restore it.

> Maybe it could with the M-0 argument since it's not being used.  Or
> maybe a M-- argument since negative columns don't exist?  Although,
> with 7 columns to remember now, maybe sorting the second to last
> column with M-- M-2 should be available.

Maybe 0 S is a good suggestion.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13411: 24.2.91; Sorting in Buffer Menu Mode
  2013-01-30 19:53 ` Glenn Morris
@ 2013-02-01  2:41   ` Aaron S. Hawley
  0 siblings, 0 replies; 4+ messages in thread
From: Aaron S. Hawley @ 2013-02-01  2:41 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 13411

>> How do I disable sorting so that it goes back to the default order of
>> buffer-list?
>
> This is a tabulated list mode issue.
> Maybe you can just (setq tabulated-list-sort-key nil); followed by g.

Nice hack!  I also noticed another hack where you can reset the buffer
list by doing M-0 M-x Bufer-menu-sort RET and then followed by g as
well.

>> Maybe it could with the M-0 argument since it's not being used.  Or
>> maybe a M-- argument since negative columns don't exist?  Although,
>> with 7 columns to remember now, maybe sorting the second to last
>> column with M-- M-2 should be available.
>
> Maybe 0 S is a good suggestion.

Agreed.  Unfortunately, tabulated-list-mode is 0-based.  So other
modes based on t-l-m might want to sort on the first column (in my
last email I pointed out at the sorting on the current buffer is
pointless).  I'd suggest making it 1-based.  This would affect Buffer
Menu

 M-x buffer-menu -- sort by display time
 M-1 M-x Buffer-menu-sort -- sort by current buffer (there is none!)
 M-2 M-x Buffer-menu-sort -- sort by read-only
 M-3 M-x Buffer-menu-sort -- sort by modification flag
 M-4 M-x Buffer-menu-sort -- sort by name
 M-5 M-x Buffer-menu-sort -- sort by size (descending)
 M-6 M-x Buffer-menu-sort -- sort by mode
 M-7 M-x Buffer-menu-sort -- sort by file name
 M-x Buffer-menu-sort -- sort by the column at point

I forgot to mention the `tabulated-list-sort' command doesn't even
understand a bare C-u argument.  Just numeric ones.  That should be
fixed as well.

I can work on a patch for all this if it sounds good.
/a




-- 
In general, we reserve the right to have a poor
memory--the computer, however, is supposed to
remember!  Poor computer.  -- Guy Lewis Steele Jr.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13411: 24.2.91; Sorting in Buffer Menu Mode
  2013-01-10 18:40 bug#13411: 24.2.91; Sorting in Buffer Menu Mode Aaron S. Hawley
  2013-01-30 19:53 ` Glenn Morris
@ 2021-07-15 15:37 ` Lars Ingebrigtsen
  1 sibling, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2021-07-15 15:37 UTC (permalink / raw)
  To: Aaron S. Hawley; +Cc: 13411

"Aaron S. Hawley" <aaron.s.hawley@gmail.com> writes:

> I can live with these changes except for one:  How do I disable
> sorting so that it goes back to the default order of buffer-list?

This is a general issue with tabulated-list-mode -- there's no way to
get back to the original order after sorting.

That is, the caller will put the data in `tabulated-list-entries', and
it'll be displayed in that order.  When sorting, tabulated-list-mode
will then sort on the data in a column, and that destructively modifies
`tabulated-list-entries'.

So to get back to the original order, we can't rely on re-sorting -- we
really have to know what the original order was, which means that we
have to store that somewhere.  I've now done so in Emacs 28 (stashing it
in a hash table instead of making a copy of the list itself, in case
that has had elements removed in the meantime).

It takes up some extra memory, but it's not done until the user issues a
sorting command, so I think it should be OK.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-15 15:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-10 18:40 bug#13411: 24.2.91; Sorting in Buffer Menu Mode Aaron S. Hawley
2013-01-30 19:53 ` Glenn Morris
2013-02-01  2:41   ` Aaron S. Hawley
2021-07-15 15:37 ` Lars Ingebrigtsen

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).