From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gabriel Newsgroups: gmane.emacs.bugs Subject: bug#59438: 29.0.50; [PATCH] Make defvar's into defcustom's in tab-line Date: Mon, 21 Nov 2022 06:25:17 -0300 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35213"; mail-complaints-to="usenet@ciao.gmane.io" To: 59438@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Nov 21 10:30:16 2022 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 1ox383-0008rs-TX for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 21 Nov 2022 10:30:16 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ox37t-00030q-0Q; Mon, 21 Nov 2022 04:30:05 -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 1ox37q-0002zR-UA for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 04:30:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ox37q-0001tN-Ka for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 04:30:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ox37q-0004R0-3w for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 04:30:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Gabriel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 21 Nov 2022 09:30:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59438 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.166902295316960 (code B ref -1); Mon, 21 Nov 2022 09:30:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 21 Nov 2022 09:29:13 +0000 Original-Received: from localhost ([127.0.0.1]:45440 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ox373-0004PT-5U for submit@debbugs.gnu.org; Mon, 21 Nov 2022 04:29:13 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:44938) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ox36x-0004PI-Pl for submit@debbugs.gnu.org; Mon, 21 Nov 2022 04:29:11 -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 1ox36x-0002VJ-7H for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 04:29:07 -0500 Original-Received: from mail-bn8nam04olkn2108.outbound.protection.outlook.com ([40.92.47.108] helo=NAM04-BN8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ox36q-0001FM-Ha for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 04:29:06 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TTd//uUGajIn8njrWZ1xpkcvO5+WGsqDomJu6F9zg+6EQnbRVTPMNIfeFzE81cbMAyhrz1b3RsmbMV8SjXTrySmGoMLZVmjaxPDcb+ImVvV4qdRnechYlGMxAOHj8+R9w1K1i6BnfmJr66GO1XCmc7yGOerfkap9aiu63erLIaRLtEcNE2YsVEvjLR2zMDPg6HCYj5ODYjaLBnsChSiqSSNd5FVmHaADUexPEYo/eV7IcjpMz7dS9WSH2YYmp9l2yYg8q3Du+u0JbhCJf1TgkBDr6PzJFQgOc0ISzx8esXzZnUFCn8Ce0vVKTV0tk4D99nXmEIV5nDbKepyiseTxyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MTJ5Tf/znQ/0Kc0nMD2fVgZw81rGIFZN8euc0/agVHg=; b=WIqceF9U15nF5JBa+PjMw0KDFRvM6uu73nOA6pS3YbfbFO0r+9RtDKMRdK985AcLAosyfi31cNOweUOxzKv+SpxwNeJb6GE4wu2s6y1njamKeHx5LN9s6sTz95jX6Bpw/Xpx4bCyL3DZ2cYbnqspbP4ZQYIgzC1eu6qviZ8PzTSf4sbEWwNa9z47a3apcyw+/ere4vLc2tnBJTSty5zlPNbqOoRObiVKzt9/9Dv1il+cW/c8iz/VxIYXubA9ZLuiI4hTHaD9+78sPXr4hzH4HA4l4XYQmeaD5RbCh8WuIGUPQiScFXlanS+d/1eTm/lEpI1s9TyWMeTy2CKbOcqPHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MTJ5Tf/znQ/0Kc0nMD2fVgZw81rGIFZN8euc0/agVHg=; b=s4wSxRYXYZlhDXp+ZVfou3JP9kt4qZLoCERd8d15rXsO0FscjkLxbh9LgUjD/DCyqf5M30dAyZpZ1/Twarv+hCF97t+HbIMGrZlOBAmOtSMpD4xzOJRD/1Ku3/VihvzCWEUYt5RtFq5q4L0PtlL7TsXvgxH1T2TlxsdOkRlEGIcs6sqqOgzbK3rOc2uHolXBGHj9ImuerEhHTM5w5lkchoSHuQ6Iq0dIUJEe5YJwixCUp51CVX4/xtZ95wiFJxMuCx9z+Oth1o43x/Tvg2sGGJZJ5PjGPMjs9cAb5Xjt1i5H4VFEvkNC0aX8jqAkUOb+Z0o7kyPVN8eTE2ZzTNnfZw== Original-Received: from SJ0PR06MB8609.namprd06.prod.outlook.com (2603:10b6:a03:40c::11) by SJ0PR06MB7471.namprd06.prod.outlook.com (2603:10b6:a03:32d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.17; Mon, 21 Nov 2022 09:25:24 +0000 Original-Received: from SJ0PR06MB8609.namprd06.prod.outlook.com ([fe80::33ae:d3a7:24ae:5c6f]) by SJ0PR06MB8609.namprd06.prod.outlook.com ([fe80::33ae:d3a7:24ae:5c6f%4]) with mapi id 15.20.5857.017; Mon, 21 Nov 2022 09:25:24 +0000 X-TMN: [iQ+vraUXZ5IjxuIWGxejnx3J1UdHS9UCkqVLxzY/0zxRdgMm/phm5Nlye/r3kc4A] X-ClientProxiedBy: CPYP284CA0025.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:69::12) To SJ0PR06MB8609.namprd06.prod.outlook.com (2603:10b6:a03:40c::11) X-Microsoft-Original-Message-ID: <87leo4acci.fsf@hotmail.com> X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR06MB8609:EE_|SJ0PR06MB7471:EE_ X-MS-Office365-Filtering-Correlation-Id: c3f0aa96-7cca-4a55-f0bf-08dacba251b3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YVX6KGD+00N1TNNkrKu+YWvg3PDWe4zQFpPEdQG2Zx0tjEkiP6+dk/m6Qbxu/jlQPQXjDHQSbYx74caOSgfs19XT/1hlkIxUcQYaMKNELPI3WkAIJc0aTntkifH/h6Hyc646m86mAFxuM3BqVpre5Ueelj9w45XaKekHIM3r3Ur2wSWev6Vxp9O/a67ZT01CJbuZJweqhhG7cpqJjNB0o/QglBmBgw4hsX/PktN/m2rDfNa2HsZyaWWrzShkZ1bcF828qDvxx9RkrpbiIWqIPf2KrY/3MAqh0GfNIJQnjcQQlyNjW1DdHMFxJH8nNofLDTLTfpdCmav9vyv6CkPzfovqRs8IXdKD09oBT4XmLdNYV+TkeuY/8TLG1bPSBSso+mZa0ZnwOOFpA6BkgcrE6sGNmerEt6Fa9nCZ/TW82RkbSgAbd2mKdI3b7+//7CfrfiPxv02Q/f7Gj5n/gRDlfd0/hRZJ4J1Ns8fNkeUwEVlyrc63Cl/hTcunn/jWfC6Z9Nn4Gc29BMhPWvvpx6m4V73wmTLccNzwv+O/8aeb47M2DHD7fcN81myp1L4ogWVJ4YWRsK7U5BUYhZvjy/PKNt/bttR8K5MoI8ExeTeBUcM= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MyGU9lQ75wRzrD4e3Xb16MG31x+gruxNhZ0HTy5wysh+kKhUpvkoA5wh8y/S5YBnwP4JYLSo4RqbPlWcTiRkOhjMGMFj0/5hRPdQiE4PgE/VMA8tKWnR9eUVmKXxzmNZSaQlNKprbsr0lLnTZWWXWO798Q1jUmMuGEgRcJLTx88r8i3GrTbYTfPTCR4VF58TEfqPnEOCxGCSDnZMqILuNgSEeGO8s1o/7KmhUCO0MtTyrpDwK24w1aInQoiJXp7smja6ukOy2Ia4kd6o+tK9JDlZnETT0Fhz6G5qNNa71eE4U2QMZ8f8i+X7JoK12zeJ7qVk7ELVjH8YQhASvvxQEFhqeHRYfWC+vMBN0kE6b56GbeG9mlF7qc4BHht0l4VBRVPgueY/VYhTWtNXMbSqquei6/ZJn0sJ2cqWoF+ihL+KntWe0hPB+g1fB8NesbSKhWc+A3pZz/QdmpqT8PcpjzbvkifGjtJuAlINdREkYuzZYE7j6PXbFm0a3dEmJnJJrCRIBzHkhZqtmTVmSVxXjM0evP7+CBFu2fV/Yu+jVmljMEI2m9JIW56bAOUu/1FgsAqXZ2V7ljKRC3fdIvvkJ2TNQ1nE2uZh5aEV10YbOgNsbdM45rglUW7Q3qATPHX62lj4odjjEszR3El/UqP8ccr4oWu1b0n+SWmKGihDYTZndRLxEuCr/6NwxArCw2W7/k3pAtKyM3jyzoA2mlspQZejGZrj5LoLSTa20aW+sx8tXw/IHkkvZJ6OWL SN1y7sQ1OIiqHKinPo4JSzN8QBdkiRprWzVQn+HyWr23FPNST6wv8hxNp4O/kNcPSWfEeN1AUHt58VX0FDdT9AAFsm6nxbaKEH X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-89723.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: c3f0aa96-7cca-4a55-f0bf-08dacba251b3 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR06MB8609.namprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 09:25:24.8326 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR06MB7471 Received-SPF: pass client-ip=40.92.47.108; envelope-from=gabriel376@hotmail.com; helo=NAM04-BN8-obe.outbound.protection.outlook.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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:248510 Archived-At: --=-=-= Content-Type: text/plain Description: Please find attached a patch that proposes the following minor changes to tab-line. I can refactor the patch if we decide that some change are not worth or if it's better to split it into smaller patches. 1) Turn the following defvar's into defcustom's: - `tab-line-tabs-buffer-group-function' - `tab-line-tabs-buffer-group-sort-function' - `tab-line-tabs-buffer-groups-sort-function' 2) Add conditional around function call of `tab-line-tabs-buffer-groups-sort-function', in `tab-line-tabs-buffer-groups'. This guards against nil values, similar to how `tab-line-tabs-buffer-group-sort-function is handled, making the behavior more consistent across these two (similar) variables. Should we announce these "new" defcustom's in NEWS? --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Make-defvar-s-into-defcustom-s-in-tab-line.patch >From da1053e7211d8bb17769fe43650a9bcdd359aeab Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Mon, 21 Nov 2022 06:17:49 -0300 Subject: [PATCH 1/1] Make defvar's into defcustom's in tab-line * lisp/tab-line.el (tab-line-tabs-buffer-group-function) (tab-line-tabs-buffer-group-sort-function) (tab-line-tabs-buffer-groups-sort-function): Make into defcustom's. (Make defvar's into defcustom's in tab-line): Handle case when variable tab-line-tabs-buffer-groups-sort-function is nil. --- lisp/tab-line.el | 51 ++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 99a785ee3e..9b1c101718 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -341,16 +341,26 @@ tab-line-tabs-mode-buffers (derived-mode-p mode))) (funcall tab-line-tabs-buffer-list-function))))) -(defvar tab-line-tabs-buffer-group-function nil +(defcustom tab-line-tabs-buffer-group-function nil "Function to add a buffer to the appropriate group of tabs. -Takes a buffer as arg and should return a group name as a string. -If the return value is nil, the buffer should be filtered out.") +Takes a buffer as argument and should return a group name as a +string. If the return value is nil, the buffer should be + filtered out." + :type 'function + :group 'tab-line + :version "29.1") -(defvar tab-line-tabs-buffer-group-sort-function nil - "Function to sort buffers in a group.") +(defcustom tab-line-tabs-buffer-group-sort-function nil + "Function to sort buffers in a group." + :type 'function + :group 'tab-line + :version "29.1") -(defvar tab-line-tabs-buffer-groups-sort-function #'string< - "Function to sort group names.") +(defcustom tab-line-tabs-buffer-groups-sort-function #'string< + "Function to sort group names." + :type 'function + :group 'tab-line + :version "29.1") (defvar tab-line-tabs-buffer-groups mouse-buffer-menu-mode-groups "How to group various major modes together in the tab line. @@ -378,13 +388,14 @@ tab-line-tabs-buffer-groups generate the group name." (if (window-parameter nil 'tab-line-groups) (let* ((buffers (funcall tab-line-tabs-buffer-list-function)) - (groups - (seq-sort tab-line-tabs-buffer-groups-sort-function - (delq nil (mapcar #'car (seq-group-by - (lambda (buffer) - (tab-line-tabs-buffer-group-name - buffer)) - buffers))))) + (groups (delq nil + (mapcar #'car + (seq-group-by #'tab-line-tabs-buffer-group-name + buffers)))) + (sorted-groups (if (functionp tab-line-tabs-buffer-groups-sort-function) + (seq-sort tab-line-tabs-buffer-groups-sort-function + groups) + groups)) (selected-group (window-parameter nil 'tab-line-group)) (tabs (mapcar (lambda (group) @@ -395,9 +406,8 @@ tab-line-tabs-buffer-groups (set-window-parameter nil 'tab-line-groups nil) (set-window-parameter nil 'tab-line-group group) (set-window-parameter nil 'tab-line-hscroll nil))))) - groups))) - tabs) - + sorted-groups))) + tabs) (let* ((window-parameter (window-parameter nil 'tab-line-group)) (group-name (tab-line-tabs-buffer-group-name (current-buffer))) (group (prog1 (or window-parameter group-name "All") @@ -410,10 +420,9 @@ tab-line-tabs-buffer-groups (set-window-parameter nil 'tab-line-groups t) (set-window-parameter nil 'tab-line-group group) (set-window-parameter nil 'tab-line-hscroll nil))))) - (buffers - (seq-filter (lambda (b) - (equal (tab-line-tabs-buffer-group-name b) group)) - (funcall tab-line-tabs-buffer-list-function))) + (buffers (seq-filter (lambda (b) + (equal (tab-line-tabs-buffer-group-name b) group)) + (funcall tab-line-tabs-buffer-list-function))) (sorted-buffers (if (functionp tab-line-tabs-buffer-group-sort-function) (seq-sort tab-line-tabs-buffer-group-sort-function buffers) -- 2.34.1 --=-=-= Content-Type: text/plain --- Gabriel --=-=-=--