From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Simon Lang Newsgroups: gmane.emacs.bugs Subject: bug#41766: Make it possible to change regexp to identify and highlight grep matches via customization Date: Tue, 9 Jun 2020 07:58:06 +0000 Message-ID: References: , Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_002_VI1PR10MB28002AD31928468C3F6F13FF80820VI1PR10MB2800EURP_" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="129075"; mail-complaints-to="usenet@ciao.gmane.io" To: Dmitry Gutov , "41766@debbugs.gnu.org" <41766@debbugs.gnu.org>, Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 09 11:24:18 2020 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 1jiaUU-000XXz-0m for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Jun 2020 11:24:18 +0200 Original-Received: from localhost ([::1]:53828 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jiaUT-0001mN-1K for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Jun 2020 05:24:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52486) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiaUE-0001h1-SU for bug-gnu-emacs@gnu.org; Tue, 09 Jun 2020 05:24:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47396) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jiaUE-0000ny-He for bug-gnu-emacs@gnu.org; Tue, 09 Jun 2020 05:24:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jiaUE-0000aS-Dh for bug-gnu-emacs@gnu.org; Tue, 09 Jun 2020 05:24:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Simon Lang Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 Jun 2020 09:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41766 X-GNU-PR-Package: emacs Original-Received: via spool by 41766-submit@debbugs.gnu.org id=B41766.15916946182225 (code B ref 41766); Tue, 09 Jun 2020 09:24:02 +0000 Original-Received: (at 41766) by debbugs.gnu.org; 9 Jun 2020 09:23:38 +0000 Original-Received: from localhost ([127.0.0.1]:58942 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiaTq-0000Zp-4D for submit@debbugs.gnu.org; Tue, 09 Jun 2020 05:23:38 -0400 Original-Received: from mail-oln040092071043.outbound.protection.outlook.com ([40.92.71.43]:4371 helo=EUR03-DB5-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiZ9C-0004jh-30 for 41766@debbugs.gnu.org; Tue, 09 Jun 2020 03:58:14 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cV+SiTDq+PjLIOKVFz73PRVc3DPA5PZg3OF5MM2lu/xI+n9X6AwTzRuJfpLG1omjQIYPnV0/5ZpJeYsjUePsfmKc2nQk1BzIA4keyFkxKMRQLXNfC0+RraxsTfOjUiMiiVaI3sDe+FU6Td1Gey61LqtjPAJy3IJm1bw12+VS+8F+NTPUEDWranja4yPoPXDcbbj87GybVjuJDAnH8+6N9n1onrUoRtnLBzAbp/apwKQo0Dwmk6KJiuBUOP4D/BdIRqP3yE+gOIHcEjnDWBbba4NT+QdZia6p3BVC45equukTO7QTr6N14SQ9s7jspeiHpSvQkYuFrZIersUosJQsiQ== 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-SenderADCheck; bh=L24FZyXoRabNaNRRxXog+KOJUlGUmWbWpqUJF6YIBNM=; b=J/2uvGXDz+UnJvcBFIYP5HfhWkwgOix1BVXB0KMOVHnnJNM5gOgyL3fOiimUsQ9s9G7NQQsynpGbLtGpYi6EUmIpymdqw+kc3QrjRNgMH5rQULhycT9Y0m0iuiAsboDUDlbPh43orqHujD53vhBaps578szl6J1cGB0lYMkbfB+HSeiHF+zpGa9smWmXcVT34pGE1i60CKJi32tiGeddaUOGobwC8iyiW0qvJbERyhh72EoxdOYQR1Ms5ws3/3XOBM8rBvvPMwz32ZJA4rhkh3K2fRcjzsQX1FO85uLrYuk9wl5xXLDndj+uKhABbYV1z7yFTmhO9m75ktNeppQKKg== 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=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L24FZyXoRabNaNRRxXog+KOJUlGUmWbWpqUJF6YIBNM=; b=u9B9DFRvz/qAXE5+eWn+ebMLYOQTuQDs6xLCYmoQh7YVHUixKW5SpIDWNuPj51F0w8FpFEaip1Hsd4UNPku5aSXXUTzZN19TKhZgeqe/18ejX499/UobSdEi1r4ze/iJXlXz5oCSvnaXRMkN+ZFuROf5XqIKqnk+UFD4TVgBbP+4/gaQqcVxUAxd9uXfO4POqFY0CJPlbg4JjYIjFZYG+yaxST96SEnrjwuhhAHGPZK6NlLVV7x3fDZQKoQvpBznM+3MADYxuS3opuOs9gtLuPZwnnQ6aFhwrAx96nuVSNFDGiOChKgzWcLTmQ6TNhZ9/wFb+SrFDWUu3cnzw4cR7g== Original-Received: from DB5EUR03FT042.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e0a::47) by DB5EUR03HT130.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e0a::276) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Tue, 9 Jun 2020 07:58:07 +0000 Original-Received: from VI1PR10MB2800.EURPRD10.PROD.OUTLOOK.COM (2a01:111:e400:7e0a::4e) by DB5EUR03FT042.mail.protection.outlook.com (2a01:111:e400:7e0a::379) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18 via Frontend Transport; Tue, 9 Jun 2020 07:58:07 +0000 Original-Received: from VI1PR10MB2800.EURPRD10.PROD.OUTLOOK.COM ([fe80::c45e:a27a:903e:c357]) by VI1PR10MB2800.EURPRD10.PROD.OUTLOOK.COM ([fe80::c45e:a27a:903e:c357%7]) with mapi id 15.20.3066.023; Tue, 9 Jun 2020 07:58:06 +0000 Thread-Topic: bug#41766: Make it possible to change regexp to identify and highlight grep matches via customization Thread-Index: AQHWPc/RG0xiM+LeYUGktgGhL6/KlKjPcrmAgAB2jTQ= In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes x-incomingtopheadermarker: OriginalChecksum:605FC921EEB62914336B0129348A3DB0BA7DA2B66E69FBB58635A466D65B892A; UpperCasedChecksum:25C9E6A13ACC956C57F098DA76C9B4E94F5E1E82A7DA5743A9426CDC046E9BB9; SizeAsReceived:7157; Count:45 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [zQ2dwwAR8KXGNchgD7y3nh0SIPAOsp0C] x-ms-publictraffictype: Email x-incomingheadercount: 45 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 1dbbda8d-7692-4347-b1ed-08d80c4ad84e x-ms-traffictypediagnostic: DB5EUR03HT130: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JXtq6+R/4e4FnCvNNP+Xq1CGwf7VRdsJ+Tq86WWGHzi+ydoMkYF0A14A42xFwGBsQ5wtK2Cl19RLvkXCqdasQzFB/LTEHPg3R2kXpgSPGvnusKhMwZXP+iaevPBOmPHIm0B4Fkwu+HHdKDELYek+8OFbYlUG3QaGkvAVt1uKcFFYlvsLRqr3vut1NeqxJ7cXFWpe4191dqF8O0ae1+aa8w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:0; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR10MB2800.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFTY:; SFS:; DIR:OUT; SFP:1901; x-ms-exchange-antispam-messagedata: oizHOtGIemOgjoCAHfmYPQGTIvjXMLQmlNT2T9rwNkW4b7nFvcjUHhmf5iz+yGZM79xdLUfEnX4GJE8wtxvl2FEVO2J7aoBXatofyXaUzAE4Bj29UJ2HN5QfZ9MkEAiBO3jIpaojYrMBfXdYoiQ+nA== x-ms-exchange-transport-forked: True X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 1dbbda8d-7692-4347-b1ed-08d80c4ad84e X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jun 2020 07:58:06.7635 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5EUR03HT130 X-Mailman-Approved-At: Tue, 09 Jun 2020 05:23:37 -0400 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:181764 Archived-At: --_002_VI1PR10MB28002AD31928468C3F6F13FF80820VI1PR10MB2800EURP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, I changed grep-regexp-match to grep-match-regexp. Pls note that ripgrep knows about ignore files etc. hence the more fair com= parison would probably be git grep (e.g. vc-git-grep). But ripgrep is still= considerably faster and does not only work for git repositories. Thanks! ________________________________________ From: DG on behalf of Dmitry Gutov Sent: 09 June 2020 01:44 To: Simon Lang; 41766@debbugs.gnu.org Subject: Re: bug#41766: Make it possible to change regexp to identify and h= ighlight grep matches via customization On 08.06.2020 23:25, Simon Lang wrote: > For example: > > change grep command to > > "rg -n -H -S --no-heading --color always -e" I wonder if we can use a similar customization more generally. For instance, in my testing Grep searches the full Emacs checkout in ~230ms, whereas RipGrep does that in ~40ms. The difference is perceptible. The obvious idea is to use grep-template, but we're passing -s and -E to it. rg would interpret these options differently. Here's a perftest patch if someone was personally curious about the difference: diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 5b5fb4bc47..2c6ed4da7d 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -1262,7 +1262,7 @@ xref-matches-in-files (dir (file-name-directory (car files))) (remote-id (file-remote-p dir)) ;; 'git ls-files' can output broken symlinks. - (command (format "xargs -0 grep %s -snHE -e %s" + (command (format "xargs -0 rg %s -nH -e %s" (if (and case-fold-search (isearch-no-upper-case-p regexp t)) "-i" @@ -1275,6 +1275,7 @@ xref-matches-in-files #'tramp-file-local-name #'file-local-name) files))) + (setq tt (time-to-seconds)) (with-current-buffer output (erase-buffer) (with-temp-buffer @@ -1289,6 +1290,7 @@ xref-matches-in-files shell-command-switch command))) (goto-char (point-min)) + (message "%s" (- (time-to-seconds) tt)) (when (and (/=3D (point-min) (point-max)) (not (looking-at grep-re)) ;; TODO: Show these matches as well somehow? --_002_VI1PR10MB28002AD31928468C3F6F13FF80820VI1PR10MB2800EURP_ Content-Type: application/octet-stream; name="0001-Make-regexp-used-to-highlight-grep-matches-customiza.patch" Content-Description: 0001-Make-regexp-used-to-highlight-grep-matches-customiza.patch Content-Disposition: attachment; filename="0001-Make-regexp-used-to-highlight-grep-matches-customiza.patch"; size=1421; creation-date="Tue, 09 Jun 2020 07:50:49 GMT"; modification-date="Tue, 09 Jun 2020 07:50:49 GMT" Content-Transfer-Encoding: base64 RnJvbSBiYzliNzM2ZmYyMGEwM2U4MzFiYzUxMTAyODNjY2Y5MjQxMTI3NzczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBMYW5nIDxzaW1vbi5sYW5nQG91dGxvb2suY29tPgpE YXRlOiBNb24sIDggSnVuIDIwMjAgMjA6NDc6MDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBNYWtl IHJlZ2V4cCB1c2VkIHRvIGhpZ2hsaWdodCBncmVwIG1hdGNoZXMgY3VzdG9taXphYmxlCgoqIGxp c3AvcHJvZ21vZGVzL2dyZXAuZWwKLS0tCiBsaXNwL3Byb2dtb2Rlcy9ncmVwLmVsIHwgNSArKysr LQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2xpc3AvcHJvZ21vZGVzL2dyZXAuZWwgYi9saXNwL3Byb2dtb2Rlcy9ncmVwLmVsCmlu ZGV4IDc3MzFiZTU5NjUuLjNmMGM5OWY2ZGMgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL2dy ZXAuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvZ3JlcC5lbApAQCAtMTAwLDYgKzEwMCw5IEBAIFRv IGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSwgdXNlIFxcW2N1c3RvbWl6ZV0gb3IgY2FsbCB0aGUg ZnVuY3Rpb24KICAgOnNldCAjJ2dyZXAtYXBwbHktc2V0dGluZwogICA6dmVyc2lvbiAiMjIuMSIp CiAKKyhkZWZjdXN0b20gZ3JlcC1tYXRjaC1yZWdleHAgIlwwMzNcXFswPzE7MzFtXFwoLio/XFwp XDAzM1xcW1swLTldKm0iCisgICJSZWdleCBkZWZpbml0aW9uIHRvIGlkZW50aWZ5IGdyZXAgbWFy a2VycyB0byBoaWdobGlnaHQgbWF0Y2hlcy4iKQorCiAoZGVmY3VzdG9tIGdyZXAtc2Nyb2xsLW91 dHB1dCBuaWwKICAgIk5vbi1uaWwgdG8gc2Nyb2xsIHRoZSAqZ3JlcCogYnVmZmVyIHdpbmRvdyBh cyBvdXRwdXQgYXBwZWFycy4KIApAQCAtNTg0LDcgKzU4Nyw3IEBAIFRoaXMgZnVuY3Rpb24gaXMg Y2FsbGVkIGZyb20gYGNvbXBpbGF0aW9uLWZpbHRlci1ob29rJy4iCiAgICAgICAod2hlbiAoPCAo cG9pbnQpIGVuZCkKICAgICAgICAgKHNldHEgZW5kIChjb3B5LW1hcmtlciBlbmQpKQogICAgICAg ICA7OyBIaWdobGlnaHQgZ3JlcCBtYXRjaGVzIGFuZCBkZWxldGUgbWFya2luZyBzZXF1ZW5jZXMu Ci0gICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgIlwwMzNcXFswPzE7MzFtXFwoLio/ XFwpXDAzM1xcW1swLTldKm0iIGVuZCAxKQorICAgICAgICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3 YXJkIGdyZXAtbWF0Y2gtcmVnZXhwIGVuZCAxKQogICAgICAgICAgIChyZXBsYWNlLW1hdGNoIChw cm9wZXJ0aXplIChtYXRjaC1zdHJpbmcgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZmFjZSBuaWwgJ2ZvbnQtbG9jay1mYWNlIGdyZXAtbWF0Y2gtZmFjZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICB0IHQpCi0tIAoyLjIxLjAgKEFwcGxlIEdpdC0xMjIpCgo= --_002_VI1PR10MB28002AD31928468C3F6F13FF80820VI1PR10MB2800EURP_--