From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Konstantin Kharlamov Newsgroups: gmane.emacs.bugs Subject: bug#68579: [PATCH] Support a local repo as URL in treesit-language-source-alist Date: Fri, 19 Jan 2024 11:08:00 +0300 Message-ID: <0ffc2f474cf84ed3c63aa82091c967807e5ca0e6.camel@yandex.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-PoU4MCls5fVRYGocwjOO" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40448"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.50.3 To: 68579@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 19 09:09:25 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 1rQjwK-000AGC-9q for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 19 Jan 2024 09:09:24 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rQjvz-0006I4-EJ; Fri, 19 Jan 2024 03:09:03 -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 1rQjvy-0006Hh-7s for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 03:09:02 -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 1rQjvx-0005gh-0P for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 03:09:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rQjvy-00065w-OF for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 03:09:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Konstantin Kharlamov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 19 Jan 2024 08:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 68579 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.170565171023367 (code B ref -1); Fri, 19 Jan 2024 08:09:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 19 Jan 2024 08:08:30 +0000 Original-Received: from localhost ([127.0.0.1]:57392 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQjvR-00064n-Hd for submit@debbugs.gnu.org; Fri, 19 Jan 2024 03:08:30 -0500 Original-Received: from lists.gnu.org ([2001:470:142::17]:35366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rQjvN-00064Y-Ig for submit@debbugs.gnu.org; Fri, 19 Jan 2024 03:08:27 -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 1rQjvB-0006DY-RJ for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 03:08:15 -0500 Original-Received: from forward101c.mail.yandex.net ([178.154.239.212]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQjv7-0005bj-P5 for bug-gnu-emacs@gnu.org; Fri, 19 Jan 2024 03:08:12 -0500 Original-Received: from mail-nwsmtp-smtp-production-main-45.myt.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-45.myt.yp-c.yandex.net [IPv6:2a02:6b8:c12:5205:0:640:3bd4:0]) by forward101c.mail.yandex.net (Yandex) with ESMTP id 13A9860B58 for ; Fri, 19 Jan 2024 11:08:01 +0300 (MSK) Original-Received: by mail-nwsmtp-smtp-production-main-45.myt.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id 08Jor91OfmI0-xAc7MynU; Fri, 19 Jan 2024 11:08:00 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1705651680; bh=X+KQOSylxkPz6fVw3vewg4lJI9POQJ7k/4oS7C9U58w=; h=To:Message-ID:Subject:Date:From; b=Ve/TFnYeG2bPYSyHaoGiuKWmh/aYjzumBWTtaShz4CmLn72Ey0EhBiz2ILOq/5t2y 4lZJc1UyxpiFyL3loeFesA8jaOspB7i4HxxL5MKS6RvDF8Z3zN3eo9+7k9x0y3KBgh drzSwf1mR0t2gOv6dT2+IMbEL21NIM5NZjle85fk= Authentication-Results: mail-nwsmtp-smtp-production-main-45.myt.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received-SPF: pass client-ip=178.154.239.212; envelope-from=Hi-Angel@yandex.ru; helo=forward101c.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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:278484 Archived-At: --=-PoU4MCls5fVRYGocwjOO Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable TL;DR: this just to simplify debugging/rebuilding treesitter grammars, because they are often broken (both the build system and the infamous "unversioning" part) and only Emacs knows what to do with them. So gotta have some way to point Emacs to a local grammar repo. ----------- Long story: I've been recently stumbling upon the infamous "Debug the query with treesit-query-validate" problem, and found that it's not the only problem in that context. The workaround to this problem currently is finding the commit in the offending treesitter-grammar that works and re-building the grammar from it. Well, that "re-building" part of the advice turns out to be very convoluted. Let's take for example typescript=C2=B9. It has no "building" docs, but I guess they are not needed because it's obvious by `Cargo.toml` presence that it's written in Rust, and hence building is just `cargo bulid --release`, right? Well, no. Doing that does not produce the shared libs Emacs expects. Now a user starts reverse- engineering, trying to find what's wrong. At some point they realize that Emacs builds code from the specific directory `tsx/src`, but=E2=80=A6 There's no build system! What do you do with these files=E2=80=A6? Well, th= e answer is that Emacs somehow knows what to do, so now you have to modify `treesit-language-source-alist` to point at the local repo and make Emacs do the job of building the grammar. However, Emacs does not support local paths as part of that grammar. What it does instead is it clones FROM the local path (which is confusing on itself, because everything completes successfully, but it didn't do what you expected it to). So what this patch does is it adds detection of a full path to the treesit-language-source-alist processing to make sure we avoid cloning the repo in that case and just proceed building it. 1: https://github.com/tree-sitter/tree-sitter-typescript --=-PoU4MCls5fVRYGocwjOO Content-Disposition: attachment; filename="1.patch" Content-Type: text/x-patch; name="1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjOWRlNTlhMzk1NjZhNWRmNDZhYTM5ZWY5MzM0ODQ4N2JiMjk0OGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLb25zdGFudGluIEtoYXJsYW1vdiA8SGktQW5nZWxAeWFuZGV4 LnJ1PgpEYXRlOiBGcmksIDE5IEphbiAyMDI0IDEwOjMzOjQ3ICswMzAwClN1YmplY3Q6IFtQQVRD SF0gU3VwcG9ydCBhIGxvY2FsIHJlcG8gYXMgVVJMIGluIHRyZWVzaXQtbGFuZ3VhZ2Utc291cmNl LWFsaXN0CgpTb21ldGltZXMgcGVvcGxlIG1heSBuZWVkIHRvIGJpc2VjdCB0byBmaW5kIHNwZWNp ZmljIHJldmlzaW9uIGluIGEKZ3JhbW1hciByZXBvLiBJbiB0aGlzIGNhc2UgdGhleSdkIHdhbnQg dG8gcG9pbnQgdGhlIFVSTCB0byB0aGUgbG9jYWwKcmVwbyB0byBhdm9pZCBjbG9uaW5nIGl0IG9u IGV2ZXJ5IHJlYnVpbGQuIFNvIGFkZCBzdXBwb3J0IGZvciBmdWxsCnBhdGggaW4gdHJlZXNpdC1s YW5ndWFnZS1zb3VyY2UtYWxpc3QuCgoqIGxpc3AvdHJlZXNpdC5lbCAodHJlZXNpdC0taW5zdGFs bC1sYW5ndWFnZS1ncmFtbWFyLTEpOiB0ZXN0IGlmIFVSTApzdGFydHMgd2l0aCAvIG1lYW5pbmcg dGhhdCB0aGUgVVJMIGlzIGEgbG9jYWwgcGF0aC4gVGhlbiBpZiBpdCBpcywKYXZvaWQgY2xvbmlu ZyB0aGUgcmVwbyBhbmQgcmVtb3ZpbmcgdGhlIHBhdGggb24gc3VjY2Vzcy4KKHRyZWVzaXQtLWdp dC1jbG9uZS1yZXBvKTogZmFjdG9yIG91dCB0aGUgY29kZSBmb3IgY2xvbmluZyB0byBhIHNlcGFy YXRlCmZ1bmN0aW9uLgoodHJlZXNpdC0tZ2l0LWNoZWNrb3V0LWJyYW5jaCk6IGEgaGVscGVyIHRv IGNoZWNrb3V0IHRoZSByZXZpc2lvbiBmb3IKY2FzZXMgd2hlcmUgd2UgZGlkbid0IGNsb25lIHRo ZSByZXBvIGJ1dCB3YW50IGl0IHRvIHBvaW50IHRoZQpyZXZpc2lvbi4KLS0tCiBsaXNwL3RyZWVz aXQuZWwgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2xpc3AvdHJlZXNpdC5lbCBiL2xpc3AvdHJlZXNpdC5lbAppbmRleCBjOGI0NzNjN2JiOC4uMTE2 MzFlNjg3OTMgMTAwNjQ0Ci0tLSBhL2xpc3AvdHJlZXNpdC5lbAorKysgYi9saXNwL3RyZWVzaXQu ZWwKQEAgLTM0MTcsNyArMzQxNyw3IEBAIHRyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CiAg ICAgKExBTkcgLiAoVVJMIFJFVklTSU9OIFNPVVJDRS1ESVIgQ0MgQysrKSkKIAogT25seSBMQU5H IGFuZCBVUkwgYXJlIG1hbmRhdG9yeS4gIExBTkcgaXMgdGhlIGxhbmd1YWdlIHN5bWJvbC4KLVVS TCBpcyB0aGUgR2l0IHJlcG9zaXRvcnkgVVJMIGZvciB0aGUgZ3JhbW1hci4KK1VSTCBpcyB0aGUg R2l0IHJlcG9zaXRvcnkgVVJMIG9yIGZ1bGwgcGF0aCBmb3IgdGhlIGdyYW1tYXIuCiAKIFJFVklT SU9OIGlzIHRoZSBHaXQgdGFnIG9yIGJyYW5jaCBvZiB0aGUgZGVzaXJlZCB2ZXJzaW9uLAogZGVm YXVsdGluZyB0byB0aGUgbGF0ZXN0IGRlZmF1bHQgYnJhbmNoLgpAQCAtMzU1MSw2ICszNTUxLDIz IEBAIHRyZWVzaXQtLWNhbGwtcHJvY2Vzcy1zaWduYWwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChidWZmZXItc3RyaW5nKSkpCiAgICAgKGVyYXNlLWJ1ZmZlcikpKQogCisoZGVm dW4gdHJlZXNpdC0tZ2l0LWNoZWNrb3V0LWJyYW5jaCAocmVwby1wYXRoIHJldmlzaW9uKQorICAi Q2hlY2tvdXQgYHJldmlzaW9uJyBpbiBhIHJlcG8gbG9jYXRlZCBpbiBgcmVwby1wYXRoJyIKKyAg KHRyZWVzaXQtLWNhbGwtcHJvY2Vzcy1zaWduYWwKKyAgICJnaXQiIG5pbCB0IG5pbCAiLUMiIHJl cG8tcGF0aCAiY2hlY2tvdXQiIHJldmlzaW9uKSkKKworKGRlZnVuIHRyZWVzaXQtLWdpdC1jbG9u ZS1yZXBvICh1cmwgcmV2aXNpb24gd29ya2RpcikKKyAgIkNsb25lIHJlcG8gcG9pbnRlZCBieSBg dXJsJyBhdCBjb21taXQgYHJldmlzaW9uJyB0byBgd29ya2RpciciCisgIChtZXNzYWdlICJDbG9u aW5nIHJlcG9zaXRvcnkiKQorICA7OyBnaXQgY2xvbmUgeHh4IC0tZGVwdGggMSAtLXF1aWV0IFst YiB5eXldIHdvcmtkaXIKKyAgKGlmIHJldmlzaW9uCisgICAgICAodHJlZXNpdC0tY2FsbC1wcm9j ZXNzLXNpZ25hbAorICAgICAgICJnaXQiIG5pbCB0IG5pbCAiY2xvbmUiIHVybCAiLS1kZXB0aCIg IjEiICItLXF1aWV0IgorICAgICAgICItYiIgcmV2aXNpb24gd29ya2RpcikKKyAgICAodHJlZXNp dC0tY2FsbC1wcm9jZXNzLXNpZ25hbAorICAgICAiZ2l0IiBuaWwgdCBuaWwgImNsb25lIiB1cmwg Ii0tZGVwdGgiICIxIiAiLS1xdWlldCIKKyAgICAgd29ya2RpcikpKQorCiAoZGVmdW4gdHJlZXNp dC0taW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyLTEKICAgICAob3V0LWRpciBsYW5nIHVybCAmb3B0 aW9uYWwgcmV2aXNpb24gc291cmNlLWRpciBjYyBjKyspCiAgICJJbnN0YWxsIGFuZCBjb21waWxl IGEgdHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgZ3JhbW1hciBsaWJyYXJ5LgpAQCAtMzU2NCw4ICszNTgx LDEwIEBAIHRyZWVzaXQtLWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hci0xCiBgdHJlZXNpdC1sYW5n dWFnZS1zb3VyY2UtYWxpc3QnLiAgSWYgYW55dGhpbmcgZ29lcyB3cm9uZywgdGhpcwogZnVuY3Rp b24gc2lnbmFscyBhbiBlcnJvci4iCiAgIChsZXQqICgobGFuZyAoc3ltYm9sLW5hbWUgbGFuZykp CisgICAgICAgICA7OyBkb24ndCBjbG9uZSBpZiB1cmwgaXMgYSBsb2NhbCBwYXRoCisgICAgICAg ICAodXJsLWlzLXBhdGggKHN0cmluZy1wcmVmaXgtcCAiLyIgdXJsKSkKICAgICAgICAgIChkZWZh dWx0LWRpcmVjdG9yeSAobWFrZS10ZW1wLWZpbGUgInRyZWVzaXQtd29ya2RpciIgdCkpCi0gICAg ICAgICAod29ya2RpciAoZXhwYW5kLWZpbGUtbmFtZSAicmVwbyIpKQorICAgICAgICAgKHdvcmtk aXIgKGlmIHVybC1pcy1wYXRoIHVybCAoZXhwYW5kLWZpbGUtbmFtZSAicmVwbyIpKSkKICAgICAg ICAgIChzb3VyY2UtZGlyIChleHBhbmQtZmlsZS1uYW1lIChvciBzb3VyY2UtZGlyICJzcmMiKSB3 b3JrZGlyKSkKICAgICAgICAgIChjYyAob3IgY2MgKHNlcS1maW5kICMnZXhlY3V0YWJsZS1maW5k ICcoImNjIiAiZ2NjIiAiYzk5IikpCiAgICAgICAgICAgICAgICAgIDs7IElmIG5vIEMgY29tcGls ZXIgZm91bmQsIGp1c3QgdXNlIGNjIGFuZCBsZXQKQEAgLTM1ODAsMTUgKzM1OTksMTAgQEAgdHJl ZXNpdC0taW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyLTEKICAgICAgICAgIChsaWItbmFtZSAoY29u Y2F0ICJsaWJ0cmVlLXNpdHRlci0iIGxhbmcgc29leHQpKSkKICAgICAodW53aW5kLXByb3RlY3QK ICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKLSAgICAgICAgICAobWVzc2FnZSAiQ2xvbmluZyBy ZXBvc2l0b3J5IikKLSAgICAgICAgICA7OyBnaXQgY2xvbmUgeHh4IC0tZGVwdGggMSAtLXF1aWV0 IFstYiB5eXldIHdvcmtkaXIKLSAgICAgICAgICAoaWYgcmV2aXNpb24KLSAgICAgICAgICAgICAg KHRyZWVzaXQtLWNhbGwtcHJvY2Vzcy1zaWduYWwKLSAgICAgICAgICAgICAgICJnaXQiIG5pbCB0 IG5pbCAiY2xvbmUiIHVybCAiLS1kZXB0aCIgIjEiICItLXF1aWV0IgotICAgICAgICAgICAgICAg Ii1iIiByZXZpc2lvbiB3b3JrZGlyKQotICAgICAgICAgICAgKHRyZWVzaXQtLWNhbGwtcHJvY2Vz cy1zaWduYWwKLSAgICAgICAgICAgICAiZ2l0IiBuaWwgdCBuaWwgImNsb25lIiB1cmwgIi0tZGVw dGgiICIxIiAiLS1xdWlldCIKLSAgICAgICAgICAgICB3b3JrZGlyKSkKKyAgICAgICAgICAoaWYg dXJsLWlzLXBhdGgKKyAgICAgICAgICAgICAgKHdoZW4gcmV2aXNpb24KKyAgICAgICAgICAgICAg ICAodHJlZXNpdC0tZ2l0LWNoZWNrb3V0LWJyYW5jaCB1cmwgcmV2aXNpb24pKQorICAgICAgICAg ICAgKHRyZWVzaXQtLWdpdC1jbG9uZS1yZXBvIHVybCByZXZpc2lvbiB3b3JrZGlyKSkKICAgICAg ICAgICA7OyBXZSBuZWVkIHRvIGdvIGludG8gdGhlIHNvdXJjZSBkaXJlY3RvcnkgYmVjYXVzZSBz b21lCiAgICAgICAgICAgOzsgaGVhZGVyIGZpbGVzIHVzZSByZWxhdGl2ZSBwYXRoICgjaW5jbHVk ZSAiLi4veHh4IikuCiAgICAgICAgICAgOzsgY2QgIiR7c291cmNlZGlyfSIKQEAgLTM2MzUsNyAr MzY0OSw3IEBAIHRyZWVzaXQtLWluc3RhbGwtbGFuZ3VhZ2UtZ3JhbW1hci0xCiAgICAgICAgICAg ICA7OyBJZ25vcmUgZXJyb3JzLCBpbiBjYXNlIHRoZSBvbGQgdmVyc2lvbiBpcyBzdGlsbCB1c2Vk LgogICAgICAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIG9sZC1mbmFtZSkpKQog ICAgICAgICAgIChtZXNzYWdlICJMaWJyYXJ5IGluc3RhbGxlZCB0byAlcy8lcyIgb3V0LWRpciBs aWItbmFtZSkpCi0gICAgICAod2hlbiAoZmlsZS1leGlzdHMtcCB3b3JrZGlyKQorICAgICAgKHdo ZW4gKGFuZCAobm90IHVybC1pcy1wYXRoKSAoZmlsZS1leGlzdHMtcCB3b3JrZGlyKSkKICAgICAg ICAgKGRlbGV0ZS1kaXJlY3Rvcnkgd29ya2RpciB0KSkpKSkKIAogOzs7IEV0YwotLSAKMi40My4w Cgo= --=-PoU4MCls5fVRYGocwjOO--