From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#69305: outline-minor-mode for tabulated-list-mode Date: Tue, 27 Feb 2024 10:31:21 +0200 Message-ID: <861q8yux46.fsf@gnu.org> References: <86msrtvi06.fsf@mail.linkov.net> <86frxlmy1d.fsf@gnu.org> <86cyspt02f.fsf@mail.linkov.net> <861q94nc4j.fsf@gnu.org> <867ciws983.fsf@mail.linkov.net> <86plwo1fii.fsf@gnu.org> <86il2fwuc8.fsf@mail.linkov.net> <86edd31tv5.fsf@gnu.org> <86jzmtda1y.fsf@mail.linkov.net> <86sf1hybm3.fsf@gnu.org> <86msrpx91u.fsf@mail.linkov.net> <86frxgwdzk.fsf@gnu.org> <86jzmqgxvg.fsf@mail.linkov.net> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30280"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 69305@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Feb 27 09:33:11 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1restj-0007UO-KR for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 27 Feb 2024 09:33:11 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1restK-00028Z-2X; Tue, 27 Feb 2024 03:32:46 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1restF-000281-MI for bug-gnu-emacs@gnu.org; Tue, 27 Feb 2024 03:32:42 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1restA-0005Xx-Nd for bug-gnu-emacs@gnu.org; Tue, 27 Feb 2024 03:32:37 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1resta-0000CM-Fv for bug-gnu-emacs@gnu.org; Tue, 27 Feb 2024 03:33:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Feb 2024 08:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69305 X-GNU-PR-Package: emacs Original-Received: via spool by 69305-submit@debbugs.gnu.org id=B69305.1709022734609 (code B ref 69305); Tue, 27 Feb 2024 08:33:02 +0000 Original-Received: (at 69305) by debbugs.gnu.org; 27 Feb 2024 08:32:14 +0000 Original-Received: from localhost ([127.0.0.1]:33912 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ressn-00009k-9U for submit@debbugs.gnu.org; Tue, 27 Feb 2024 03:32:13 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:60304) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ressl-00009I-7w for 69305@debbugs.gnu.org; Tue, 27 Feb 2024 03:32:12 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ressF-0005Oc-Lm; Tue, 27 Feb 2024 03:31:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=jhbndIX4d7T2cXiF7RCT01pN3Q+PZvCVUWCmqgbs9G8=; b=ZxWgCQ6heq4q Ra6KsFyJjyWDZ2sSD3bqgW5PexpmooYHgNTvx7opS1HgAnD1KXcWcC2ao7mB+276btsfoUT+3YQpe lzz1uCKnlGsxWbTUB29H737ch+Rd0388NHxGVPyanaftkgInx/Q7YUGdRyySHUbLT3OeKhGKHS5oR EWeFDrU9yPf8Pph4F0jI3TdabM0d10RH4sJUxBhYNOZgTW8mKEc8Jj1V2aCJNeCMA20H6aYdST1iW SZ0ZyimNQncrwD7dkxr3pKl4LhMU1DafHObAJVSEbi1Og/UOYVkIuNPTboKf0jTmhECxelkP34UYu XVSqC8tKM1nFRJcum3yyEQ==; In-Reply-To: <86jzmqgxvg.fsf@mail.linkov.net> (message from Juri Linkov on Tue, 27 Feb 2024 09:30:10 +0200) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:280719 Archived-At: > From: Juri Linkov > Cc: 69305@debbugs.gnu.org > Date: Tue, 27 Feb 2024 09:30:10 +0200 > > >> >> >> Sorry, I don't understand what is unclear here: > >> >> >> > >> >> >> If the value is a list, each list element corresponds to one group, and > >> >> >> should have the form @w{@code{(@var{group-name} @var{entries})}}, where > >> >> >> @var{group-name} is a string inserted before all group entries, and > >> >> >> @var{entries} have the same format as @code{tabulated-list-entries} > >> >> >> (see above). > >> >> >> > >> >> >> Basically this says that the format is (group-name entries) where > >> >> >> entries are described in tabulated-list-entries as having the format > >> >> >> (id contents). There is no need to duplicate the description of entries. > >> >> > > >> >> > Maybe I'm missing something here. To put it more concretely, can you > >> >> > show a value of tabulated-list-groups that will cause the buffers in > >> >> > buffer list grouped by major mode using the above form? > >> >> > >> >> Data structure for `tabulated-list-groups' is a list of elements, > >> >> each element should of the form > >> >> > >> >> (GROUP-NAME (ID . CONTENTS) (ID . CONTENTS) ...) > >> >> > >> >> where GROUP-NAME is the name of the group, ID is a Lisp object that > >> >> identifies the entry and CONTENTS is a vector with the same number of > >> >> elements as `tabulated-list-format'. When buffers grouped by major mode: > >> >> > >> >> (("* Lisp Interaction" (# ["." " " "*" #("*scratch*" 0 9 ...) "225" "Lisp Interaction" ""]) ...)) > >> > > >> > This is the value that the user is supposed to supply for the > >> > defcustom? That is, the user must specify all the buffers explicitly? > >> > What happens when there's one more buffer in some mode? does the user > >> > have then to modify the value of the defcustom? > >> > >> This describes the internal data structure, not a defcustom. > > > > Well, my question above, viz.: > > > >>> > Maybe I'm missing something here. To put it more concretely, can you > >>> > show a value of tabulated-list-groups that will cause the buffers in > >>> > buffer list grouped by major mode using the above form? > > > > was about the value of this defcustom. I hoped that by having such a > > value as part of this discussion, we will be able to clear any > > misunderstandings that could be getting in the way. > > But tabulated-list-groups is not a defcustom. > There are no defcustoms here. Buffer-menu-group-by _is_ a defcustom, and it is documented thusly: + "If non-nil, buffers are grouped by function. +This function takes one argument: a list of entries in the same format +as in `tabulated-list-entries', and should return a list in the format +suitable for `tabulated-list-groups'. So you are inviting users to write functions that return values of a certain format, but the format's documentation IMO doesn't make it clear how to specify a grouping, and for its important part alludes to another variable (tabulated-list-entries), whose documentation is suitable for different kind of uses, not for grouping of entries. Since tabulated-list-groups is such an important part of the documentation of Buffer-menu-group-by, the doc string of tabulated-list-groups is in effect part of the doc string of Buffer-menu-group-by, and should IMO be worded as appropriate for user options.