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#67687: Feature request: automatic tags management Date: Mon, 01 Jan 2024 21:25:35 +0200 Message-ID: <83edf026vk.fsf@gnu.org> References: <58D84A29-9A63-45BA-AD8B-B476CDC931A1@gmail.com> <812729c8-726f-d60e-2603-2d8e588929fd@gutov.dev> <835y0sgg12.fsf@gnu.org> <979cf9e0-4d08-4c39-b5c8-11b0bb8801b4@gutov.dev> <83v88e3moc.fsf@gnu.org> <835y0e2ui8.fsf@gnu.org> <95132856-65b0-4812-a124-52e0da674330@gutov.dev> <8334vi2mwo.fsf@gnu.org> <801f2f8a-a39b-493f-a24f-0613a3c7ca57@gutov.dev> <83ttnx1clj.fsf@gnu.org> <2198a45c-e94b-47d6-9815-125d8f505f18@gutov.dev> <83il4d0zhh.fsf@gnu.org> <7361089b-a473-4770-9637-db5855e07aee@gutov.dev> <83frzh0x8b.fsf@gnu.org> <285175f0-24f1-46c5-8559-8d52b1b30b76@gutov.dev> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30672"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 67687@debbugs.gnu.org, eskinjp@gmail.com, michael.albinus@gmx.de, stefankangas@gmail.com To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jan 01 20:26:21 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 1rKNvZ-0007mx-5B for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 01 Jan 2024 20:26:21 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rKNvG-0003l8-6o; Mon, 01 Jan 2024 14:26:02 -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 1rKNvE-0003kz-G6 for bug-gnu-emacs@gnu.org; Mon, 01 Jan 2024 14:26:00 -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 1rKNvE-0002Ss-54 for bug-gnu-emacs@gnu.org; Mon, 01 Jan 2024 14:26:00 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rKNvF-0006Dd-Qt for bug-gnu-emacs@gnu.org; Mon, 01 Jan 2024 14:26:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jan 2024 19:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67687 X-GNU-PR-Package: emacs Original-Received: via spool by 67687-submit@debbugs.gnu.org id=B67687.170413715323889 (code B ref 67687); Mon, 01 Jan 2024 19:26:01 +0000 Original-Received: (at 67687) by debbugs.gnu.org; 1 Jan 2024 19:25:53 +0000 Original-Received: from localhost ([127.0.0.1]:48806 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKNv6-0006DE-Tm for submit@debbugs.gnu.org; Mon, 01 Jan 2024 14:25:53 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41464) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKNv4-0006Cw-Ce for 67687@debbugs.gnu.org; Mon, 01 Jan 2024 14:25:51 -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 1rKNuw-0002NZ-6r; Mon, 01 Jan 2024 14:25:42 -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=ELodEKJ2EbYE9N9vGwN7zW5Z3pKninx8y8kRVq6OsIw=; b=QKf0SAjYGhvf PmAQA05P59NVPRfAyuGgL3FSgpf0H4sTxGSGfzcudHOhIHGvvfsITjQ3Y3QziqpXvesBazW4pm/NV xbloqUnVhTrCSOduL6r63uM4ZmVV6R64fxbFX5pHXHCp/MdXMLvcqY73aDhnBWHZ+5HZOVxLNtjQq r2Kw6KngrwEiYbCzysi2K+BZFe28f3W+iiHEmDaEkE4VakOyBc5j+YiJkHBquAj8icv2VjBtNsie+ NI7B7mG6B/LHaMDbNrV8XzRVySPW23JJkBvkFVAza0vR2mJiDDmB2bI24rCUpUbbCjFhYYJ382KCn N/OYoJQ8nTpH+dAFIk4l3Q==; In-Reply-To: <285175f0-24f1-46c5-8559-8d52b1b30b76@gutov.dev> (message from Dmitry Gutov on Mon, 1 Jan 2024 20:48:37 +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:277194 Archived-At: > Date: Mon, 1 Jan 2024 20:48:37 +0200 > Cc: stefankangas@gmail.com, eskinjp@gmail.com, 67687@debbugs.gnu.org, > michael.albinus@gmx.de > From: Dmitry Gutov > > On 01/01/2024 19:39, Eli Zaretskii wrote: > >> Date: Mon, 1 Jan 2024 19:23:28 +0200 > >> Cc: stefankangas@gmail.com, eskinjp@gmail.com, 67687@debbugs.gnu.org, > >> michael.albinus@gmx.de > >> From: Dmitry Gutov > >> > >> On 01/01/2024 18:50, Eli Zaretskii wrote: > >>>> +The exception is made when the user has already selected a tags > >>>> +table manually (for example, using \\[visit-tags-table]). Then > >>>> +this mode doesn't do anything. Reset the visited tags tables > >>>> +using \\[tags-reset-tags-tables]." > >>> > >>> The above is only true for the project whose TAGS was manually > >>> visited, right? IOW, it's not that once the use invokes > >>> visit-tags-table once, this mode will be effectively disabled for the > >>> entire session, right? > >> > >> No, it's the latter. It's off for the whole session, just like a visited > >> TAGS file is active for the whole session (not limited to any specific > >> project). > > > > OK, then please tweak my suggested text to explain the situation > > correctly instead. > > How about this? > > If you select a tags table manually (for example, using > \\[visit-tags-table]), then this mode will be effectively > disabled for the entire session. Use \\[tags-reset-tags-tables] > to countermand the effect of a previous \\[visit-tags-table]. SGTM, thanks. > (defun project-visit-tags () > (let* ((pr (project-current)) > (tags-file (and pr > (expand-file-name "TAGS" (project-root pr))))) > (and tags-file > (file-exists-p tags-file) > (visit-tags-table tags-file t)))) > > (add-hook 'find-file-hook #'project-visit-tags) This could work, but IMO it would be more elegant to avoid use of find-file-hook, and instead have some data structure that maps projects or directories to tags table files.