From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#47012: xref copies keymap properties to minibuffer Date: Mon, 5 Apr 2021 05:15:52 +0300 Message-ID: <4d56dcd9-9beb-1bf9-eceb-be9a6eda31c4@yandex.ru> References: <87czw9tnu9.fsf@mail.linkov.net> <3aad442a-7319-5db5-2fc6-560bb032c34d@yandex.ru> <87a6r9v24b.fsf@mail.linkov.net> <87sg4kb839.fsf@mail.linkov.net> <871rc3bls6.fsf@mail.linkov.net> <871rc2ly7x.fsf@mail.linkov.net> <4228b128-039c-2bcd-002c-5ac830d7a4d3@yandex.ru> <87pmzgtr80.fsf@mail.linkov.net> <186b46fa-3716-a76d-db85-09638d7805c7@yandex.ru> <87v99745jj.fsf@mail.linkov.net> <87zgyiv03f.fsf@mail.linkov.net> <4d3edf81-97d8-4e0e-51c0-7b2d71b57889@yandex.ru> <87o8exsv1p.fsf@mail.linkov.net> <2da88387-25ad-c615-922d-718e1b7a49d1@yandex.ru> <87lfa1nvkn.fsf@mail.linkov.net> <303d1e84-166a-a49a-817f-c83d11e371e5@yandex.ru> <87mtudbrvd.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3333"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 Cc: 47012@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Apr 05 04:17:17 2021 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 1lTEnl-0000jE-Rz for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 05 Apr 2021 04:17:17 +0200 Original-Received: from localhost ([::1]:48540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTEnk-0007P9-Dj for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 04 Apr 2021 22:17:16 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50066) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTEnW-0007Ot-Qx for bug-gnu-emacs@gnu.org; Sun, 04 Apr 2021 22:17:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53370) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lTEnW-0000Sr-AI for bug-gnu-emacs@gnu.org; Sun, 04 Apr 2021 22:17:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lTEnW-0001mu-4Z for bug-gnu-emacs@gnu.org; Sun, 04 Apr 2021 22:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Apr 2021 02:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47012 X-GNU-PR-Package: emacs Original-Received: via spool by 47012-submit@debbugs.gnu.org id=B47012.16175889816820 (code B ref 47012); Mon, 05 Apr 2021 02:17:02 +0000 Original-Received: (at 47012) by debbugs.gnu.org; 5 Apr 2021 02:16:21 +0000 Original-Received: from localhost ([127.0.0.1]:36682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTEmq-0001lw-Mx for submit@debbugs.gnu.org; Sun, 04 Apr 2021 22:16:20 -0400 Original-Received: from mail-wr1-f41.google.com ([209.85.221.41]:37551) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTEmm-0001lf-L9 for 47012@debbugs.gnu.org; Sun, 04 Apr 2021 22:16:19 -0400 Original-Received: by mail-wr1-f41.google.com with SMTP id x16so9718540wrn.4 for <47012@debbugs.gnu.org>; Sun, 04 Apr 2021 19:16:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=6GtzP6CLc2NdTxV0ML9U3qgl2vr4uEL4ObnM79ZAZU8=; b=UiGhRhC+1ZsrFgLe3Kzf140DCAUx6ao76OdswJ3vJhyPkA5NAxYujIiDYQv3VzulvI RtLpO24FDtZJm70VCN4G7A2u1O/rFgUonwCMO7wcvwKU2/nVzoLcZ1vQLkdJshiF8VKI ufdYF7ABQ0jm8C2zPAPJvR25ojul8/81ldWcYidVo7FHxhDddWrFpQlOAUS4pvPuUD/t m4lcA+/p8w3PnIousyX2Esk12TZUTNZ6z5SOFLv/+Z+Oz91aKRIaJfhIInLi+KCWt8lO zqosy6EB4LNYQj63gnKGM6WDoxN0mMqnrnIXg9uj96etl197bAkVfH8i+xYnz2r0GXzC CSYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=6GtzP6CLc2NdTxV0ML9U3qgl2vr4uEL4ObnM79ZAZU8=; b=bCgoISpdwH/lieABIkOzT3G3ZMPY2/P+eGOL14aDuivkSV6dFa5AMgoVQElQ1hKRRY w75v3CFRnIx4umv1TpjwvHPzbmow4Fs14aDj6X/atMcxriAXzpzdroSxKuYNCy6LFJOr WVpDrvJtpiSKdhFrcSwAw3+x7Pie/lpFSZ/LSJu3QstdcJarN9V+cQqogQbr+z0ip6T9 GD/gJfrOf69sn4H3dY8EnkrVTnyrtLAzym2Re24BLupzvhHCjXwyq5Cw5b3bG1XuR98P kqa2etvlRU4lMWd8yqTbQRT/wabWCzf6239vcyv6ZucEGnqQXlHnZfVZbmHEgZw7bzJN yRnA== X-Gm-Message-State: AOAM530eX88zOJQav2z3MVPNaJB3YmKGMZ50h3xG055zScKNWhRLMFL4 IeeHvihcebyG9ftt6Q/Y5uCh31FHDrw= X-Google-Smtp-Source: ABdhPJw/IzVgMOwJ6JdkWytTpOOuskYRvoqtNGIAYxR4PFR7uz5clYc0Z6DUKA9PaoLXnal0SxR6mA== X-Received: by 2002:a5d:4307:: with SMTP id h7mr26509978wrq.227.1617588954811; Sun, 04 Apr 2021 19:15:54 -0700 (PDT) Original-Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id v7sm22441339wme.47.2021.04.04.19.15.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 04 Apr 2021 19:15:54 -0700 (PDT) In-Reply-To: <87mtudbrvd.fsf@mail.linkov.net> Content-Language: en-US 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" Xref: news.gmane.io gmane.emacs.bugs:203579 Archived-At: On 05.04.2021 01:55, Juri Linkov wrote: >>> This is the simplest implementation: >>> #+begin_src emacs-lisp >>> (defun project-find-word (regexp) >>> "Word-based version of ‘project-find-regexp’. >>> Modifies the ‘xref-search-program-alist’ template >>> to add the option ‘-w’ that matches whole words." >>> (interactive (list (project--read-regexp))) >>> (let ((xref-search-program-alist >>> (mapcar (lambda (p) >>> (cons (car p) (replace-regexp-in-string "" "-w \\&" (cdr p)))) >>> xref-search-program-alist))) >>> (project-find-regexp regexp))) >>> #+end_src >> >> Wouldn't it work the same if you instead modify the regexp to be surrounded >> with \b...\b? > > Indeed, with more typing. I meant that your project-find-word would do that to the regexp, instead of trying to alter the template. > Ideally, there should be an isearch command > that will send the constructed regexp to 'project-find-regexp' from > isearch word-mode, symbol-mode like: > > #+begin_src emacs-lisp > (define-key isearch-mode-map "\C-xpg" 'isearch-project-find-regexp) > > (defun isearch-project-find-regexp () > (interactive) > (let ((isearch-recursive-edit nil)) > (isearch-done nil t) > (isearch-clean-overlays)) > (let ((regexp (cond ((functionp isearch-regexp-function) > (funcall isearch-regexp-function isearch-string)) > (isearch-regexp-function (word-search-regexp isearch-string)) > (isearch-regexp isearch-string) > (t (regexp-quote isearch-string))))) > (project-find-regexp regexp)) > (and isearch-recursive-edit (exit-recursive-edit))) > #+end_src > > But unfortunately it fails on ripgrep with: > > Search failed with status 123: regex parse error > > Maybe because ripgrep can't swallow Emacs regexps. That's right: it doesn't understand constructs like "\\". I've been meaning to experiment with removing Emacs-specific instructions from the regexp, using the result in a search, and then postprocessing with "correct" regexp later, but still haven't gotten around to that. FIXME in xref--regexp-to-extended is somewhat related.