From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Find tags with dot character Date: Mon, 22 Jul 2019 11:36:39 -0400 Message-ID: References: <83k1caxjm4.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="1336"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Jul 22 17:37:00 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hpaMz-0018HB-Kl for geh-help-gnu-emacs@m.gmane.org; Mon, 22 Jul 2019 17:36:57 +0200 Original-Received: from localhost ([::1]:34638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hpaMy-0006yO-Lh for geh-help-gnu-emacs@m.gmane.org; Mon, 22 Jul 2019 11:36:56 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50926) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hpaMu-0006y4-Tp for help-gnu-emacs@gnu.org; Mon, 22 Jul 2019 11:36:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hpaMt-0006Rl-TV for help-gnu-emacs@gnu.org; Mon, 22 Jul 2019 11:36:52 -0400 Original-Received: from 195-159-176-226.customer.powertech.no ([195.159.176.226]:59948 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hpaMt-0006RE-Lw for help-gnu-emacs@gnu.org; Mon, 22 Jul 2019 11:36:51 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1hpaMq-00186j-Jb for help-gnu-emacs@gnu.org; Mon, 22 Jul 2019 17:36:48 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:ALN1ncclwQjXLQMiGdcFun156W4= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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:121219 Archived-At: > (defun my-find-tag-default-opascal () > (let (tag) > (modify-syntax-entry ?. "w") > (setq tag (find-tag-default)) > (modify-syntax-entry ?. ".") > tag)) In case of an error (or a C-g) during the execution of find-tag-default, this will fail to restore the syntax-table to its original state, so I recommend: (defun my-find-tag-default-opascal () (unwind-protect (progn (modify-syntax-entry ?. "w") (find-tag-default)) (modify-syntax-entry ?. "."))) > And in Delphi mode hook, I added: > > (setq find-tag-default-function 'my-find-tag-default-opascal) This likely affects the variable globally, so maybe you'd want to use `setq-local` instead. > This works fine, but I am wondering if i'm not reinventing the wheel > because I missed something. I know the general issue of namespaces is not handled very well by the etags support. Your approach above will make thing worse in several important use cases (e.g. when point is on "." where we won't find that tag anywhere (we'd have to lookup something like "." instead)), so it's not really something we can use as is by default, but I think we'd welcome patches which try to improve on this (e.g. by first trying with the dots and if that fails try again without them). Stefan