From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: Choosing tags tables Date: Thu, 20 Jul 2017 08:23:29 +0300 Message-ID: <83k233bs1a.fsf@gnu.org> References: NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1500528265 8153 195.159.176.226 (20 Jul 2017 05:24:25 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 20 Jul 2017 05:24:25 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Jul 20 07:24:21 2017 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dY3wV-00014R-DE for geh-help-gnu-emacs@m.gmane.org; Thu, 20 Jul 2017 07:24:07 +0200 Original-Received: from localhost ([::1]:36128 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dY3wa-0004EO-LZ for geh-help-gnu-emacs@m.gmane.org; Thu, 20 Jul 2017 01:24:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54434) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dY3w6-0004E8-2f for help-gnu-emacs@gnu.org; Thu, 20 Jul 2017 01:23:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dY3w2-0008Vn-Qv for help-gnu-emacs@gnu.org; Thu, 20 Jul 2017 01:23:42 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51912) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dY3w2-0008Vj-Mx for help-gnu-emacs@gnu.org; Thu, 20 Jul 2017 01:23:38 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3288 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dY3w2-0003x0-34 for help-gnu-emacs@gnu.org; Thu, 20 Jul 2017 01:23:38 -0400 In-reply-to: (message from Daniel Lopez on Thu, 20 Jul 2017 04:17:23 +0100) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:113791 Archived-At: > From: Daniel Lopez > Date: Thu, 20 Jul 2017 04:17:23 +0100 > > So I set it up so that for example in my c++-mode-hook it sets > tags-table-list with the multiple tags files I want to use for C++; the > first is the library I use in all my C++ projects and the second is the > project-specific tags file (assuming all project sources are in the same > directory as TAGS, for now). I'm setting it as buffer-local so that it > only applies to tag searches that are started when that buffer is current: > > (setq-local tags-table-list > (list "/home/daniel/docs/code/c/reusable/checkout/dan/TAGS" > (concat default-directory "TAGS"))) > > However when I then do a xref-find-definitions Emacs prompts me: > "Visit tags table (default TAGS):" > because (in visit-tags-table-buffer) it's not looking for the > buffer-local value of tags-table-list, only the global which is nil. If > I go along with it and enter something then Emacs sets tags-file-name to > my entry which means now I only have one tags file and my > tags-table-list gets ignored. I think this should be reported as a bug, using report-emacs-bug. In your report, please provide more details about your conclusion that visit-tags-table-buffer ignores buffer-local values: AFAICT, that function does have provisions for considering local values, so it could be that xref-find-definitions fails to invoke some functions correctly or with the right buffer being the current one. A Lisp backtrace at the time visit-tags-table-buffer could help. Also, a minimal test case to reproduce the problem will be useful. > Does anyone know of a better way to get this effect? The way you tried first should "just work".