From patchwork Fri Feb 17 12:37:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47037 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4E76616952; Fri, 17 Feb 2023 12:39:10 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id CE43B167D0 for ; Fri, 17 Feb 2023 12:39:09 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT004-0003gc-FU; Fri, 17 Feb 2023 07:38:04 -0500 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 1pT002-0003a4-JA for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT002-0000zK-8w for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT002-0001Hz-4Z for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 1/7] gnu: Add tree-sitter-lua. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374544854 (code B ref 49946); Fri, 17 Feb 2023 12:38:02 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:34 +0000 Received: from localhost ([127.0.0.1]:38697 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzZ-0001G8-DB for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:33 -0500 Received: from mout.gmx.net ([212.227.17.22]:50653) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzW-0001FD-Tl for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:31 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MUXtY-1p2UvU1ytc-00QVEo; Fri, 17 Feb 2023 13:37:24 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:16 +0000 Message-Id: <20230217123722.15143-2-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:uKZuqUioK/pp6kBoxaKTsrNHBNLbvD7EZQhzq8r/UbZ0ewJJQoM G4JtIeuJqwfW7jVkknb/Wp+E4Cv6f/u+Wo4H/hI73qvWarbc6r/kCTOukEVGzrvn38MEJI8 WW0vULyARzt17QVunLDUjXxncCCv8qd44fCrgqk+IbqRuD2vzbBU/GXd3XLArm1AZV0CHEG Z861bda8nYSlCj4t0kx8w== UI-OutboundReport: notjunk:1;M01:P0:yLXd2uEykho=;nmtZ7nJgFJ79w6wNL6TppLFZwrQ j4Xegxm4zVK3k0TC5SnQwqdE+O5h4UCKwlTDYuVqNk4da3fbhyEF66L92JfzpHLtGT76JxCba a9QjNYI/aoP/mVrr+4J3m+ixD2BR3//MkNaqE9KtOKR4PPjRtruAzIdo2f3PDEIseThcPuaxc cYcx87R9Bd2xBFTpPDXYALJR1OE/z0XcWEYfTt22sYkXfDVZQHigJEVhw4zjN6zEIUkbeae8V FR1x7voTNO3MrUPKMQNGFH/G1/2zOUbjFHXXPyIatXuFHrFBjdWEgeTORMfTLO7DAenWJZOyk Py3FhfgketJTx0IJX+t9dzF+bu1L52rkdkDdUh7ATib82sLa73tpm2m4YnSSNo98Zu+9PDKhw slWC/D80gQCpyBJdxgFw0ApIUDb8EnMXOwQcqmXBisdit+nG/ZX6wosba4y1R0fAhBV6GdyJW FxTUNm3N/9n6JXHKQY8R0RuLTXeeJC+chpNeLzqjw0uBGVSGVzS7p9+ZJxyk3/zDV11C+M4oF NeEY8jhx/HTWh4tmleDoF4yhYttrL1h0/sA/BibngnOCSPuH1NGMxUspNEHZtN9SL97+D23RI nomXSTdktacN+5/CMQM6qe9Lp7pO5QFnJCBjuF4FhjM3VlvUTv6dgnsVKUyDge1lo5AhX6/t3 SPBRmgXPAoSjd8+b+gv3et7nxSXKAsgg1FLlhyrvX8udIsAQDpajll4rASe/LrNza3Zj5w1uQ SIP9Z/TUh7N8tlW0T2kcZvRZsfmeW6jU0liCAUYTWfujH2NzDBEEhxazTnUKxtlxrOJv2/baa OdSlTX7wCBeHICCIu320CtTYko2jgluqjLEU64TJ1+H2RUTVBt84pvHNADYADowaVU0gCdWjT 3nvQ4L1pHhDQPvukSkXGIB3pGsPO2/QhwQ3ZfdTxCGpSus+j85Aebp+rUpiJcFDG3LO9dUZc6 FUAjTl9HZxK3LufyskHUPcx1AHc= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (tree-sitter-lua): New variable. --- gnu/packages/tree-sitter.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index 8dda7737ca..395ae10d88 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -359,6 +359,13 @@ (define-public tree-sitter-julia "1pbnmvhy2gq4vg1b0sjzmjm4s2gsgdjh7h01yj8qrrqbcl29c463" "0.19.0")) +(define-public tree-sitter-lua + (tree-sitter-grammar + "lua" "Lua" + "1hhffz45ilni4g9idsbpp1aymdjkjnyd4491xbdmr47bglf9cgc1" + "0.0.14" + #:repository-url "https://github.com/MunifTanjim/tree-sitter-lua")) + (define-public tree-sitter-ocaml (tree-sitter-grammar "ocaml" "OCaml (.ml and .mli)" From patchwork Fri Feb 17 12:37:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47035 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 8366216922; Fri, 17 Feb 2023 12:39:04 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 183E216926 for ; Fri, 17 Feb 2023 12:39:03 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT004-0003hM-QH; Fri, 17 Feb 2023 07:38:04 -0500 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 1pT003-0003d0-8D for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT002-0000zZ-Ui for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT002-0001IE-Qw for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 2/7] gnu: Add tree-sitter-rust@0.20.2. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374594879 (code B ref 49946); Fri, 17 Feb 2023 12:38:02 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:39 +0000 Received: from localhost ([127.0.0.1]:38701 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzf-0001GX-D3 for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:39 -0500 Received: from mout.gmx.net ([212.227.17.21]:56307) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzX-0001FE-4W for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:32 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1N5VHG-1oV57m3I3G-0170nY; Fri, 17 Feb 2023 13:37:24 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:17 +0000 Message-Id: <20230217123722.15143-3-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:cKWalM7985VwbHmzoGv4UelGLxipG+R5A8iWfo+6ft912WjAUXr KvnmOWzHLtJDU+Lrs9XPcAV3ZOUjUHO+6DTqexAS4iAkqx8hQJ7aJMzDrWtUJUICdZl77YJ c1RxuXIKbn8dBQxqGDEIcOQjxRzq+Dp4oj+pwbxZV6sTiA0kK+b1yMI0HCx4NPe1kgxCTry xf4Grq8+Zn9GERa+PeQqA== UI-OutboundReport: notjunk:1;M01:P0:svZyjNy4lw4=;k9WIJTROtDdapQsOt0I2hjvqeq+ TCbwttWgjQtEOIEFvaiVe+FzGAYH/Jcypy91cdRkTNM80h7i/E2ubOo/jI+pMs6TrNIt42AwF GuArR+TmnsJvRzzhUtmChFLBTeHs46pfZIZSySrF1c33porR78l8gBLk18vNR13FZBsvtw+3T SPU6jLHUu4PWnxaQ+DaZKCbAJMdBaKNAm8crxZ1uJAhv7bzPYRiqO/pFL0OFevHWz5bvmjXAs b+4fdRgJbS/pXL9Akd1udP9aTKq7JooMJVJDTP0t56aORFlNO30/MJdZs0vOQTTGdqdFiAiDJ Rh44KHUZ90+n5IMLwCwdfbT5Alu3QVoLF/XxMWb72t9TJqjNIqybfae1xG1uy4yVlyLaclsen JNl8Z/FjJFmosOJQZGIgnmxL095EB9GLS+gpAbirkByO6e6Q+xY13kEtNkI4x5CLMQJIXBnzJ 7psIRJnOkoi4jAofo73ik3k3JcpH6D8KkeuE7gaz1FOTzXXPw8aJplaGxfURzYy6ZgutqMp7J 7rTBBO3Wc1sYx1VNYK6e67oU/4xKtgWwdynUzovNLCn4HMSHe30SBqOJlwNT3Sih6LJZ8ekHM G804ZEjEt06251PxJ7IklJ48efu3B6mNCS/Ls0cqVYExrNhDQhWk8YgGfCMMfIHviJ1X+OFvT aNenX/Xd1fG9N85SLauQXor1WB2QLPSvwJwfbI5vkdJjLgp0TjWJO9ULbF2GbkQD6PpVgIIat SFgZoZhRSJ4AJrUblONX46wc8QoB6ALZjro5J3di43F/Rt1skyI8s/J6f5Fvw0O4Z2Hz6tgFX XZ3AbJ7gWwHzHnemhygA3NxO22bpzaHnYp6wHovGGs7oHJotj1qhdVL6LoXQv3AQAIJw9CGsF doXtym2Pe75hPGnMR4C00ZAz5RoaI7X7fDdW/so9hOrpWBH9aAiSKnlygA1MNMS35w9wBL3dC 2cxoX/xR80eTAkNnWjkxLiBtm/A= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (tree-sitter-rust-0.20.2): New variable. --- gnu/packages/tree-sitter.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index 395ae10d88..b202ebf4d3 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -419,6 +419,13 @@ (define-public tree-sitter-rust "149jhy01mqvavwa8jlxb8bnn7sxpfq2x1w35si6zn60b7kqjlx8f" "0.20.3")) +;; This version is needed by emacs-tree-sitter-langs. +(define-public tree-sitter-rust-0.20.2 + (tree-sitter-grammar + "rust" "Rust" + "03sd5hv9hc6ww1d53f4w5lbx3bbnkbm4hd7k38n2dmn9ldnmdf39" + "0.20.2")) + (define-public tree-sitter-clojure (tree-sitter-grammar "clojure" "Clojure" From patchwork Fri Feb 17 12:37:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47034 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id DF89E1693E; Fri, 17 Feb 2023 12:39:03 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 50DE0167D0 for ; Fri, 17 Feb 2023 12:39:02 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT005-0003j7-J9; Fri, 17 Feb 2023 07:38:05 -0500 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 1pT002-0003bS-Tg for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT002-0000zS-JY for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT002-0001I7-Fn for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 3/7] gnu: Add rust-tree-sitter. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374594872 (code B ref 49946); Fri, 17 Feb 2023 12:38:02 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:39 +0000 Received: from localhost ([127.0.0.1]:38699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzze-0001GV-Ug for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:39 -0500 Received: from mout.gmx.net ([212.227.17.22]:54169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzW-0001FG-Vf for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:32 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MiaYJ-1owOSw0TsF-00fgM1; Fri, 17 Feb 2023 13:37:25 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:18 +0000 Message-Id: <20230217123722.15143-4-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:e4UooE3z0hKF7C3PBzeLAEk9J3Vy2iQD3b158aKcD4zMjWFris0 kS3lOhr1M/8kTUL9rkZZSB/kt0DX3J20SOwTmxNl024m7Bg6xPr/twvhTmPZ+pRyQ/gOJ2z 6bRq21JikO7HEpHf35HdaWUuLRpFwMC8Aqa9YYFVeRXIIKXXfzlnD7xCKA8YXc4vILZuD85 UprH3PDiu2rMDbZx+oC3g== UI-OutboundReport: notjunk:1;M01:P0:L2brBKzZK94=;SepAJ0ra2X2GHxhVkqD47DinbFE 0jnVLBeill7a8RfhrVq8AWGLZ0V9Wnu/x9fCQTzx2ICBb4yMBiD4japligdL/qB4skVsA6ISg wsBjnD8ooozLCwVEudPNW8xqma7k6sAa8YDlpVwmaooLWiSXd7oEF3a7TKNf5YOczJP3n2uGv mdyORolJqQ1EEOfhsmZx9LG0CFMDDCxO3ca0NP6jXpSckgSYSb2L7maus8x4APPvHToB9PAIL 0ih1NJJ0k9wBGz7s93qJAjNlHLPCOKhsLNAqSicLAekljO6u4gsIsBggExjXY7Yvx6XA/+oNu +f5yaLIexDqQTs8nURES+5Ric0mgK53OI77YvVsXd2Sm/kawTkWsBV9EcqGpes/QBFxDJi7S9 hAF3yYERLptbXImRCAFBuO/K6HI7edKeoRukPASwpjjaiDv9uT+cbQBBDanqsErpWABuNGrvt PCcRTJxjRB/vCv84Id2cUlbXBgUoEd+/hGODpoTL0roGsEZFAbfdkn2b3/y7NdbEFVr79H6sC sDdzkvmfXjeIbUKUC8NCm+VdDNig0fNvRymZ6Uc3Mr3T2bbZ6tU2w2d0KvBJVRvFs/V4NAHI8 zi+fd8ooABbuZ65rqeqyP6OpRBXdkk0uFoKl8W1a2QlB0fJ5Yfa6AHSWEEYrL8xdympu8WN49 7wFclmGrnItrOqT6Jurci9Zmjl7u7o6fwloZR0dEOAWV8h5znYqqdAvvW4sjrTCRxkLqI0+1H Ca74EEj9298kDmkBF3ajgubayAmvlQnDOw5i2GAwwsMBmsqLSroe1WGD0lj9hSbvd8kd1D3aT +lfZJlgAcvaMMNdKnnXXIsAHt8Q+qNNJpJlvVaVG+OH5Vl87K+nEfmXo9Z/eMgIMhoFOR/Sq2 LZdP1ROyO9GLH25jaw1d3yvZM6JeNIAKMSl6za5FnlvPYEsYgH9uw8sDdohDIWQffTCVSeMX+ QoBc7X0dSduIMrj49jzWkcpy8SQ= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (rust-tree-sitter): New variable. --- gnu/packages/tree-sitter.scm | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index b202ebf4d3..7256ad02e4 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -30,6 +30,7 @@ (define-module (gnu packages tree-sitter) #:use-module (guix build-system cargo) #:use-module (guix build-system gnu) #:use-module (guix build-system tree-sitter) + #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) @@ -188,6 +189,42 @@ (define-public tree-sitter-cli This package includes the @command{tree-sitter} command-line tool.") (license license:expat))) +(define-public rust-tree-sitter + (package + (name "rust-tree-sitter") + (version "0.20.7") + (source (origin + (method url-fetch) + (uri (crate-uri "tree-sitter" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "183niy9malzr4dm81swcgl05xkwqamim6ck0gw5xb6k78nprz6jl")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Remove the runtime library code and dynamically link to + ;; it instead. + (delete-file-recursively "src") + (delete-file "binding_rust/build.rs") + (with-output-to-file "binding_rust/build.rs" + (lambda _ + (format #t "fn main() {~@ + println!(\"cargo:rustc-link-lib=tree-sitter\");~@ + }~%"))))))) + (build-system cargo-build-system) + (inputs (list tree-sitter)) + (arguments + `(#:cargo-inputs + (("rust-cc" ,rust-cc-1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-regex" ,rust-regex-1)))) + (home-page "https://tree-sitter.github.io/tree-sitter/") + (synopsis "Rust bindings to the Tree-sitter parsing library") + (description "This package provides Rust bindings to the Tree-sitter +parsing library.") + (license license:expat))) + (define (tree-sitter-delete-generated-files grammar-directories) #~(begin (use-modules (guix build utils)) From patchwork Fri Feb 17 12:37:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47032 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 031CF16926; Fri, 17 Feb 2023 12:38:55 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 835C2167D0 for ; Fri, 17 Feb 2023 12:38:52 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT007-0003kV-3j; Fri, 17 Feb 2023 07:38:07 -0500 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 1pT004-0003gO-BO for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT004-0000zv-1T for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT003-0001Ia-TX for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 4/7] gnu: Add rust-tree-sitter-for-emacs. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374614902 (code B ref 49946); Fri, 17 Feb 2023 12:38:03 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:41 +0000 Received: from localhost ([127.0.0.1]:38707 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzg-0001Gt-HZ for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:41 -0500 Received: from mout.gmx.net ([212.227.17.22]:57025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzX-0001FH-6a for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:33 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1N6KUT-1oVLyO1dgv-016jwx; Fri, 17 Feb 2023 13:37:25 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:19 +0000 Message-Id: <20230217123722.15143-5-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:j0tnocQARpj2yRjuiZad6JcrpKULbc+YhjughTCWUZwLNsgsZT7 NA16XziDXU7AFj8x34hohsnPeGCh3zwvkdLsKrrmgpg+h9+lB9wrnHBGAL5TWwijx5lpayr eUbuOwVGp5SsKbK2VD2vbBSreuwfGAEJl+18rJW/ONjSwnzY6MqpYK1pOpzNGN0bDjOVYgV HsalbiS6KfkTbGgsPQyJA== UI-OutboundReport: notjunk:1;M01:P0:GEGBGHA4nGc=;R1vH8ODvR94/4yJcG06rspjYLfM Un1FTzqgr/waL/zOBzp40UqAsfv9MZ9/5OHJ4jSv6ZtUwZ3xoAGHc5/8tyaUmk8qekH+njJZ+ qqZgx0h4rclQfV5RCGGu/GxGVfGl+d8wRs4yEJ/+xPExqYIm38KDDUfawZfRqh7u25Nnef+QB hciwB9mP6eBbbujT7T0ihqrOxyogetzOLfP2DJRZuSseQdywh+Mpk7TIUX2p09/rT+ezsoiMz r9jdLsRIKDTYy6rq7kHV6GKyYOb//PsG7jom7W55TghLmaalaUk+ptWnI59eu2pQKcZatTL/E LKotJTRh/Dc0ztUqa2J/0FCtBjZs2roSHYThIh12cBuY/m1l4Mp9LtvdvZ82B0tCOU2WZcGop Lased22BUmx8wc6/DyLciSMaS4d6iGnrB6oYzUBMYQTSiSgQe06B7Z03jalW4FUbOgylQlk8F 8d+iR5QBH0mWICsIplWM9zZ6bgO5T5jcc3VQhAEUDBwoICvDh+M3gg0TlhNdK81aVNPYPNEgu PozpAwTNZEwnnsNBmRJg14VAN0+yEe3e/fm1Iqtl+1Dzsk7NahKu4EnsviPHjPOlUkZbW6btd DZ7SAHXrv6w5KwmNbBjOi+NwXCO+ubjGKoAyr3b9yZNNcAthA7ShP0X/hUWPhqqFvz7LvbXKq MxMQk31YeBvG6ERgqmn3W8O5CcLYIEYncm2oDIAyfA6OYeDGj2fhAdaNO98NZ909nonvaoH1w vwQLULqhBveX7yqk9U+2KfYle5lMxjY03dLb9lWS4tC8abz7cV6fFZHHcG6L8GNUU13BGt2ZS UXR/4uBKswseA+7TNTtjPUdQC+4fisEwl2EciiguFxvlrwV0kKk2S+69G+Ef92kCb88mZS5hX bMAyBquzMKpgjS7W05J0d79We79U/S9iGZMqEZJY7YfZ8qZdLahFGBpwOEBTsY6pJ+uZczDBr /mEDXaHAqZbw5Pl492BGzKE+7+Y= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (rust-tree-sitter-for-emacs): New variable. * gnu/packages/patches/rust-tree-sitter-text-provider-fix.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + .../rust-tree-sitter-text-provider-fix.patch | 98 +++++++++++++++++++ gnu/packages/tree-sitter.scm | 14 +++ 3 files changed, 113 insertions(+) create mode 100644 gnu/packages/patches/rust-tree-sitter-text-provider-fix.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5fcbdd4586..1dd98592b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1831,6 +1831,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-nettle-disable-vendor.patch \ %D%/packages/patches/rust-nettle-sys-disable-vendor.patch \ %D%/packages/patches/rust-openssl-sys-no-vendor.patch \ + %D%/packages/patches/rust-tree-sitter-text-provider-fix.patch \ %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \ %D%/packages/patches/rw-igraph-0.10.patch \ %D%/packages/patches/sbc-fix-build-non-x86.patch \ diff --git a/gnu/packages/patches/rust-tree-sitter-text-provider-fix.patch b/gnu/packages/patches/rust-tree-sitter-text-provider-fix.patch new file mode 100644 index 0000000000..215e7fc18b --- /dev/null +++ b/gnu/packages/patches/rust-tree-sitter-text-provider-fix.patch @@ -0,0 +1,98 @@ +From e3576b180488b8231e1fc0ca130748577579d129 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tu=E1=BA=A5n-Anh=20Nguy=E1=BB=85n?= +Date: Sun, 25 Jul 2021 13:11:52 +0700 +Subject: [PATCH] Allow TextProvider's iterators to generate owned text + +--- + binding_rust/lib.rs | 33 ++++++++++++++++++--------------- + 1 file changed, 18 insertions(+), 15 deletions(-) + +diff --git a/lib/binding_rust/lib.rs b/lib/binding_rust/lib.rs +index e88a411c..cf214d92 100644 +--- a/binding_rust/lib.rs ++++ b/binding_rust/lib.rs +@@ -5,6 +5,7 @@ mod util; + use std::os::unix::io::AsRawFd; + + use std::{ ++ borrow::Cow, + char, error, + ffi::CStr, + fmt, hash, iter, +@@ -183,7 +184,8 @@ pub struct QueryCaptures<'a, 'tree: 'a, T: TextProvider<'a>> { + } + + pub trait TextProvider<'a> { +- type I: Iterator + 'a; ++ type I: Iterator>; ++ + fn text(&mut self, node: Node) -> Self::I; + } + +@@ -1840,19 +1842,19 @@ impl<'a, 'tree> QueryMatch<'a, 'tree> { + buffer2: &mut Vec, + text_provider: &mut impl TextProvider<'a>, + ) -> bool { +- fn get_text<'a, 'b: 'a, I: Iterator>( ++ fn get_text<'a, 'b: 'a, I: Iterator>>( + buffer: &'a mut Vec, + mut chunks: I, +- ) -> &'a [u8] { +- let first_chunk = chunks.next().unwrap_or(&[]); ++ ) -> Cow<'a, [u8]> { ++ let first_chunk = chunks.next().unwrap_or(Cow::Owned(vec![0u8; 0])); + if let Some(next_chunk) = chunks.next() { + buffer.clear(); +- buffer.extend_from_slice(first_chunk); +- buffer.extend_from_slice(next_chunk); ++ buffer.extend_from_slice(&first_chunk); ++ buffer.extend_from_slice(&next_chunk); + for chunk in chunks { +- buffer.extend_from_slice(chunk); ++ buffer.extend_from_slice(&chunk); + } +- buffer.as_slice() ++ Cow::Borrowed(buffer.as_slice()) + } else { + first_chunk + } +@@ -1888,7 +1890,7 @@ impl<'a, 'tree> QueryMatch<'a, 'tree> { + match node { + Some(node) => { + let text = get_text(buffer1, text_provider.text(node)); +- r.is_match(text) == *is_positive ++ r.is_match(&text) == *is_positive + } + None => true, + } +@@ -2002,23 +2004,24 @@ impl<'cursor, 'tree> fmt::Debug for QueryMatch<'cursor, 'tree> { + } + } + +-impl<'a, F, I> TextProvider<'a> for F ++impl<'a, F, I, T> TextProvider<'a> for F + where + F: FnMut(Node) -> I, +- I: Iterator + 'a, ++ T: Into>, ++ I: Iterator, + { +- type I = I; ++ type I = iter::Map Cow<'a, [u8]>>; + + fn text(&mut self, node: Node) -> Self::I { +- (self)(node) ++ (self)(node).map(T::into) + } + } + + impl<'a> TextProvider<'a> for &'a [u8] { +- type I = iter::Once<&'a [u8]>; ++ type I = iter::Once>; + + fn text(&mut self, node: Node) -> Self::I { +- iter::once(&self[node.byte_range()]) ++ iter::once(Cow::Borrowed(&self[node.byte_range()])) + } + } + diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index 7256ad02e4..bb9972cb00 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -22,6 +22,7 @@ (define-module (gnu packages tree-sitter) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-io) #:use-module (gnu packages graphviz) @@ -225,6 +226,19 @@ (define-public rust-tree-sitter parsing library.") (license license:expat))) +;; We need to apply a patch in order to compile the rust bindings against the +;; emacs tree-sitter module. +;; See https://github.com/tree-sitter/tree-sitter/pull/1294 +(define-public rust-tree-sitter-for-emacs + (package (inherit rust-tree-sitter) + (source (origin + (inherit (package-source rust-tree-sitter)) + (patches (search-patches + "rust-tree-sitter-text-provider-fix.patch")))) + ;; Do not show this package in the UI as it's only meant to be used for + ;; emacs's tree-sitter module. + (properties '((hidden? . #t))))) + (define (tree-sitter-delete-generated-files grammar-directories) #~(begin (use-modules (guix build utils)) From patchwork Fri Feb 17 12:37:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47033 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id BD3F616926; Fri, 17 Feb 2023 12:38:57 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 4AEC7167D0 for ; Fri, 17 Feb 2023 12:38:56 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT009-0003ns-CW; Fri, 17 Feb 2023 07:38:09 -0500 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 1pT003-0003ez-VE for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT003-0000zl-Lm for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT003-0001IT-Hp for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 5/7] gnu: Add emacs-tree-sitter-core. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374604894 (code B ref 49946); Fri, 17 Feb 2023 12:38:03 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:40 +0000 Received: from localhost ([127.0.0.1]:38705 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzg-0001Gm-1K for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:40 -0500 Received: from mout.gmx.net ([212.227.17.21]:46231) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzX-0001FI-GM for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:33 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1N5mGB-1oUo0c2l5P-017Huj; Fri, 17 Feb 2023 13:37:25 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:20 +0000 Message-Id: <20230217123722.15143-6-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:kqMHkrXCjaKeEDViNS/Ve88rziqhX1+bNq0uBm01oG4CHs+SEDF S1t6rZ/0Jig6rYLi88wGrEVWIqcBb25JHZnHitnOBuqcF0auBwxMLbCV9hqX0MUhMO/UVZc kt2wfalxRESxqJ+qdkCt+DjmlwfbJNwu+pcXBZuwX0aWvV8pbufXfuHkwCZrOClUfjob+2w 3doPjoFvAeXGcRYPenrAQ== UI-OutboundReport: notjunk:1;M01:P0:/UlDmW69xcs=;hm9ry+aWvT9OxCO4uva2gFs2lNr sXQ2Lwv51aCIdaDhwuwKzOxwvmE26B3DXXh+5FAGvJWp2JCKmDGklcXJ8jiRASGcSd3TS2MbT hCYvcmN1S/wRZD1YaqMZEFAkl7mJxhwz2VHBPq4Ggnfd9/9e/+TrFQXtEraWTvT6hqcSIy2w1 izjLQAewvgZDII0vrWy/LnupT09oDeMlu2qZ1PJvJbbF8yB+TkTuzA5dXNua1zoDMjJq5UZrp avhPxmS2SoeRGoVdQhM+KrIyvW7oZkuxwZYsLJ/MGjFh1KJxHfse64Lkdj5bpzSgAz2/0OHZU 5Hs2ZcU4f+QoiyS3+bsyl0aZoj87KDJaij5Iuk357ah3UDvvM/V2K2EhXk27LrCpjjFBXzE6w rr2RruPJ2Zv5WicXsbUyeBoFw5j+vrwa1A/4CHXnsO/G2R8mLtnGSXhGSFx1+6VwXg9tHdASI iXx6WpMdY/5TFhkoxHXVIjIi6j5IicvvJOhr+770V39Blc0jRyH4ZuUwcV4qCpmMikHAV7sAw 2YlRwgXoQWVApMo/GBekQfzitQdt+a7kTcx4u5648CrmiK63qWivpsM/hUZBLhADLsF8kxj17 Al79qf8zjP4qPXemgvlLTcmImLBnEYOcOnRfc4NAQ8ErzllYuR7v80v4YIKAsgIVroBIahBYk BjdRerYzNjRmEMYFrXeM7NlTrNjR4ZZ19bNBbD5uLG7nXottyWbXtfh1mUKc2ak6waItxcedl RKciv++IeMmi8ZsTlnMCdp2aBvPBb7yV91z3loSTdjXWTDrQXvA491b+N9i/AfmGfV4RheVHt UuuYFRk2/G+Yuk2f0bRHzKPRKYlYYrmBQf5NeyujPPoZtzjCHdcKVVBVsqrRLM4LvH4Z4iR6n ZEAaZv5OE5su3xpnJOtHJtsrx5rENpf0+D5VDXynjLrNDzJRsnxiVN1YB6f93StrYATpGFH4A v7xK93vpFb6jwx9Y4tmakZgv/8s= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (tree-sitter-emacs-module): New local variable. (emacs-tree-sitter-core): New variable. --- gnu/packages/tree-sitter.scm | 85 ++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index bb9972cb00..12f2d108d9 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -29,6 +29,7 @@ (define-module (gnu packages tree-sitter) #:use-module (gnu packages icu4c) #:use-module (gnu packages node) #:use-module (guix build-system cargo) + #:use-module (guix build-system emacs) #:use-module (guix build-system gnu) #:use-module (guix build-system tree-sitter) #:use-module (guix download) @@ -538,3 +539,87 @@ (define-public tree-sitter-racket (git-version "0.1.0" revision commit) #:repository-url "https://github.com/6cdh/tree-sitter-racket" #:commit commit))) + +;; Local package definition solely for building the native emacs module +;; written in Rust. +(define tree-sitter-emacs-module + (package + (name "tree-sitter-emacs-module") + (version "0.18.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-tree-sitter/elisp-tree-sitter") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sdvz827v436qijs6xafakkfw2d16bvp8frymd818rppjc7a9dif")))) + (build-system cargo-build-system) + (inputs + (list tree-sitter)) + (arguments + (list + #:cargo-inputs + `(("rust-anyhow" ,rust-anyhow-1) + ("rust-emacs" ,rust-emacs-0.18) + ("rust-libloading" ,rust-libloading-0.7) + ("rust-once-cell" ,rust-once-cell-1) + ("rust-tree-sitter" ,rust-tree-sitter-for-emacs)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "core"))) + (add-after 'chdir 'delete-cargo.lock + (lambda _ (delete-file "Cargo.lock"))) + (add-after 'delete-cargo.lock 'do-not-fetch-from-github + (lambda _ + (substitute* "Cargo.toml" + (("\\[patch.*") "") + (("git = .*") "")))) + (replace 'install + (lambda _ + (let ((lib (string-append #$output "/lib"))) + (mkdir-p lib) + (copy-file "target/release/libtsc_dyn.so" + (string-append lib "/tsc-dyn.so")))))))) + (home-page #f) + (synopsis #f) + (description #f) + (license license:expat))) + +(define-public emacs-tree-sitter-core + (package + (name "emacs-tree-sitter-core") + (version (package-version tree-sitter-emacs-module)) + (source (package-source tree-sitter-emacs-module)) + (build-system emacs-build-system) + (native-inputs + (list tree-sitter-emacs-module)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "core"))) + (add-before 'install 'find-tsc-dyn + (lambda* (#:key inputs #:allow-other-keys) + (let ((module (search-input-file inputs "/lib/tsc-dyn.so"))) + ;; Install the tsc-dyn module in site-lisp and the current + ;; directory for test to pass. + (install-file module (elpa-directory #$output)) + (copy-file module "tsc-dyn.so") + ;; We replace the tsc-dyn-get.el file with an empty stub to + ;; prevent the code from downloading the module. + (call-with-output-file "tsc-dyn-get.el" + (lambda (port) + (for-each + (lambda (sexp) (write sexp port)) + '((defun tsc-dyn-get-ensure (requested) + nil) + (provide 'tsc-dyn-get))))))))))) + (home-page "https://emacs-tree-sitter.github.io") + (synopsis "Tree-sitter bindings for Emacs Lisp, core library") + (description "This package provides core APIs of the Emacs binding for +Tree-sitter, an incremental parsing system.") + (license license:expat))) From patchwork Fri Feb 17 12:37:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47036 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C333D16926; Fri, 17 Feb 2023 12:39:07 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 73219167D0 for ; Fri, 17 Feb 2023 12:39:06 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT004-0003ha-Uq; Fri, 17 Feb 2023 07:38:04 -0500 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 1pT003-0003dw-IK for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT003-0000zf-9U for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT003-0001IL-5c for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 6/7] gnu: Add emacs-tree-sitter. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374604887 (code B ref 49946); Fri, 17 Feb 2023 12:38:03 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:40 +0000 Received: from localhost ([127.0.0.1]:38703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzf-0001Ge-Lz for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:39 -0500 Received: from mout.gmx.net ([212.227.17.20]:42525) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzX-0001FJ-MD for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:32 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MmUHp-1okpU43uFt-00iRlL; Fri, 17 Feb 2023 13:37:26 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:21 +0000 Message-Id: <20230217123722.15143-7-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:yRC5TXY1dx5LSU1+c1QvrWeTye+eIBMTX1SuLolchrY5UC+UhDt RRSzeVKxie8e4/o78ezWUqr+qRHc3NmxiQvPdImhVN5qvPM0eE0l/W5M/MOSx3kAHeRi5om rVxeATaW0gaDRqdqUobToc7CxtE/jrVB7YOsePtFyd6FM8p29hNw9Ltp88ViGo4LzzUz9PJ Ngc4uzqRGdwjjP0A7eSZA== UI-OutboundReport: notjunk:1;M01:P0:cisUvVLKmjU=;IkRNHV9idUMymMRS1rbtcIK2k10 WKp/LyTnfxAYK+KautN6EWwLuna55SH7d4319rGUYsYX2gxt2ZmVWq6f+vYmmkMMPT6XitgIn TxaJq1JGiDme3ofiD5SwCeseU3nhnv6cJP2g90DlhE+Nyu9L7KM2b5TIlcBQyV5xmnqoxnLrW kBy7OqQOuPFqL/iJuqepcMIAxfO1vv2JxqneGDJE5KRkmqpTMrWmmnK9qFHE1uN/f2JIXgVgU lSHQ32bDODmRSGQLetvlKk18AxaiJZzvHNxsWVbFhqCYV6CxUafQ5F1bMZHSJfloNXPdJP296 esFeYAeKeFg7Y2Cl98U07j5Er9rcXutuw4iAoy6iMfP16FV91kyXyId6SfGNmNjH4Jyys4gxt R/ch2N37xHpE6iu5NbqdVvQ+h5+g+lXlB1W1ZsLG6VnO1nfhGunUNcqnEBmGqkMtZGbjxp72s fC0gLb99Gkc8L0cSndHg89FFx3RSg9tTYIFrhnKgOg0ebGa4ro8J6qHw1t5SgnVEgkRLvOjsI edRNYp6t6IM4e/aZH2np/7AYHAMPcgBINjIbhahwEYjxAlTazk9/aXqnSc8XmUuR7jMHJZxm0 oYrJByYEl+i8Xnoi1zqwKlsLi1vOjzX55t9lKb4jDfd7n24RJ3KvFSSpWyEFwUYePfI6KmUzn pPPkekNZFFACQ5lE4hiw0lEYknk1TT8pQaXZfIlN7+0J0PDVtIYXXmnGan0MsYMdokb9+fKcl yDQKBMnt2G57xf8VGZUFG9uC2y+21xvXfYownK5izfU0hLV6kxeGPNvI6bzOE/LLpzO8sYCkn L1FJFVEk7UMaTtWTU8REZ13D7Xps3mnLrW6sO3teHi+8mr2XcgsP4ws3t4HVMoi/kfEIstCf/ PXh4P6ZNwGySllYjIbWfzRXuUK3y9BrxgbyYu/udxHp+8YMKobd38CTWsdUll11mZ0BNXiUu0 TVUVRpcgdHGFrxPkiB7O+uYypio= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (emacs-tree-sitter): New variable. --- gnu/packages/tree-sitter.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index 12f2d108d9..f8be967e21 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -623,3 +623,31 @@ (define-public emacs-tree-sitter-core (description "This package provides core APIs of the Emacs binding for Tree-sitter, an incremental parsing system.") (license license:expat))) + +(define-public emacs-tree-sitter + (package + (name "emacs-tree-sitter") + (version (package-version emacs-tree-sitter-core)) + (source (package-source emacs-tree-sitter-core)) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-tree-sitter-core)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "lisp")))))) + (home-page "https://emacs-tree-sitter.github.io") + (synopsis "Tree-sitter bindings for Emacs Lisp") + (description "This package provides Emacs bindings for Tree-sitter, an +incremental parsing library. It aims to be the foundation for a new breed of +Emacs packages that understand code structurally. For example: + +@enumerate +@item Faster, fine-grained code highlighting. +@item More flexible code folding. +@item Structural editing (like Paredit, or even better) for non-Lisp code. +@item More informative indexing for imenu. +@end enumerate") + (license license:expat))) From patchwork Fri Feb 17 12:37:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Langlois X-Patchwork-Id: 47031 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 0953B16935; Fri, 17 Feb 2023 12:38:49 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 6F2C5167D0 for ; Fri, 17 Feb 2023 12:38:47 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pT009-0003nu-L8; Fri, 17 Feb 2023 07:38:09 -0500 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 1pT004-0003hI-Or for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pT004-000105-Ep for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pT004-0001Ii-Az for guix-patches@gnu.org; Fri, 17 Feb 2023 07:38:04 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#49946] [PATCH v8 7/7] gnu: Add emacs-tree-sitter-langs. Resent-From: Pierre Langlois Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Feb 2023 12:38:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49946 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49946@debbugs.gnu.org Cc: Pierre Langlois Received: via spool by 49946-submit@debbugs.gnu.org id=B49946.16766374614908 (code B ref 49946); Fri, 17 Feb 2023 12:38:04 +0000 Received: (at 49946) by debbugs.gnu.org; 17 Feb 2023 12:37:41 +0000 Received: from localhost ([127.0.0.1]:38709 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzh-0001H0-2j for submit@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:41 -0500 Received: from mout.gmx.net ([212.227.17.21]:50655) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pSzzX-0001FK-UX for 49946@debbugs.gnu.org; Fri, 17 Feb 2023 07:37:34 -0500 Received: from localhost.localdomain ([82.69.64.142]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MeCpb-1os0kD0pa3-00bGVB; Fri, 17 Feb 2023 13:37:26 +0100 From: Pierre Langlois Date: Fri, 17 Feb 2023 12:37:22 +0000 Message-Id: <20230217123722.15143-8-pierre.langlois@gmx.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230217123722.15143-1-pierre.langlois@gmx.com> References: <20221125012142.22579-1-pierre.langlois@gmx.com> <20230217123722.15143-1-pierre.langlois@gmx.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:G0NcS7HdWVB6sCgWjA2ktAQQk4cGynOHi9kPpnZyajGzByKiMp4 avHDpiMYYlbdaSb0Cv/KrWWPxUNMb/jDcXUoFTJYNHlv7w8YxA0tppORoPbF+Ev0i5t4vjC eZztwhk6FETcoNfA/76mx8ks+QSi7o9FH/6LPlyxdMmuH9z9bVBu1ImrsErr4FkC6ht7ad4 BojHYml7gG6Hy1xScNKCw== UI-OutboundReport: notjunk:1;M01:P0:ztVA7LVnlHI=;Fcnx4M//Cp92Khnh1btObGpDmad n5P2JX3ByK+aseiaxuY0y7s16qWBebTIkdwt040GBILgCMrPrCaCAFQQqr6QTaia0wRKyWkOk vXtGFmU0DcGGctRXv6FSG1v57MwCBKB+poh0mNpN5klH5T0zl0mpnVjSEWdPEkdmubini5Y3i ir6BcBqlhgNcuOEgUNR5QV7I0Y+kIgtKU3+EdY+rtwLN3G/tp74qKjcx+pg/J0wRbk3Dich8t mAEqbLndFpXdPDvG5zURA3xWxI7xtmQBbRnpKX5V+t78+sqshCSaDq5FZd2Rb8dq53eYnPqU1 Uns4eZ+uwA2O1O/7Lg5CR6l5qqBDu3OwYcFleiWBippzYx8fS4mDxw93BifoXnOIgmI6YpdNu LF5z73T0DcaleaiJUbq+wrT7zxGw0/bSdSBTe/zb+GgezgUUf/fap3pAQFZAzHeM0glxK2a8u Rq6FQQb8zxSj1xN19XYrv3jKJH2sMwabY53M03pZrDRBfBTU1DtUjr71q0aCMEsPFFU8gChqM dXWyrtBJCtVcD2z2AqIQmjJ4B2F0eFCUVhFaEP3L8l3VfO0FSJcgU3qXvrGn56TXacRlH7hnV zJ22jg0OugNViM2UAUX4SK/kYvKx9YTXDVB0WJfuBScVtMuTAkRtqfJmhy11PCv7eoEzy2EFK tsxyvugBC+XmQJ5gJozxZ4V/RwpWOVjucZsChEg0Bb8d00VMNMm1WWD8ZNNTYzKIiMrE3e++m i/OeiE4c2Sw3iT05dwO4NGGkcXFvfbsRTmDnMJAw8O3yvIAH+IQuU8feT4WIBwf1ytgJBS5tD iTawoo235MWkMnLyOQBouHTt5JVbIuomfFJK2aggmBMjrbO3dBQhYfEf37xCM9Nhhy0RtZEVs LAEM7dATKMGhas8bmxbveSjO80CNeN6YrzovGcGd/50DK1f7fclQEYgGXmMtDy6S4oSwSE+6X EJ9pSq1sxvo5zZ+8y34CWZLeyWA= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/tree-sitter.scm (emacs-tree-sitter-langs-grammar-bundle): New variable. (emacs-tree-sitter-langs): New variable. --- gnu/packages/tree-sitter.scm | 200 +++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index f8be967e21..2a05179bb4 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -32,6 +32,7 @@ (define-module (gnu packages tree-sitter) #:use-module (guix build-system emacs) #:use-module (guix build-system gnu) #:use-module (guix build-system tree-sitter) + #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) @@ -651,3 +652,202 @@ (define-public emacs-tree-sitter @item More informative indexing for imenu. @end enumerate") (license license:expat))) + +;; tree-sitter-langs expects all supported grammars to be bundled in a single +;; directory. Doing this statically also allows us to check that grammars are +;; compatible. +(define emacs-tree-sitter-langs-grammar-bundle + (package + (name "emacs-tree-sitter-langs-grammar-bundle") + (source #f) + (version (package-version tree-sitter)) + (build-system trivial-build-system) + (inputs + ;; When adding support for new languages, also add their names into the + ;; list in the package emacs-tree-sitter-langs package description. + ;; FIXME: Support for some languages is still left to package. + (list tree-sitter-bash + tree-sitter-c + tree-sitter-c-sharp + tree-sitter-cpp + tree-sitter-clojure + tree-sitter-css + tree-sitter-elixir + tree-sitter-elm + tree-sitter-go + tree-sitter-haskell + tree-sitter-html + tree-sitter-java + tree-sitter-javascript + tree-sitter-json + tree-sitter-julia + tree-sitter-lua + tree-sitter-markdown-gfm + tree-sitter-ocaml + tree-sitter-php + tree-sitter-python + tree-sitter-r + tree-sitter-ruby + tree-sitter-rust-0.20.2 + tree-sitter-typescript)) + (arguments + (list + #:builder + (with-imported-modules '((guix build union) + (guix build utils)) + #~(begin + (use-modules (ice-9 match) + (srfi srfi-1) + (guix build union) + (guix build utils)) + (mkdir-p #$output) + (for-each + (lambda (lib) + ;; tree-sitter-langs expects grammars to be as ".so" + ;; rather than "libtree-sitter-.so". + (symlink lib + (string-append + #$output + "/" + (substring (basename lib) + (string-length "libtree-sitter-"))))) + (append-map (match-lambda + ((name directory) + (find-files directory "libtree-sitter-.*\\.so$"))) + '#$(package-inputs this-package))))))) + (synopsis #f) + (description #f) + (home-page #f) + (license #f))) + +(define-public emacs-tree-sitter-langs + (package + (name "emacs-tree-sitter-langs") + (version "0.12.16") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-tree-sitter/tree-sitter-langs") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1i8lhv404ijj52jjxrmljnrhby9jlrdgpymn2jfs4kml0x7qhsna")))) + (build-system emacs-build-system) + (inputs + (list emacs-tree-sitter-langs-grammar-bundle)) + (propagated-inputs + (list emacs-tree-sitter)) + (arguments + (list + #:tests? #t + #:test-command ''("script/test") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-downloader + (lambda _ + (call-with-output-file "tree-sitter-langs-build.el" + (lambda (port) + (let ((on-load-message + (string-append + "tree-sitter-langs: Grammar bundle already installed " + "via Guix. Installing external grammars via this " + "function isn't supported, if a language you need is " + "missing please report a bug at bug-guix@gnu.org."))) + (format + port + ";;;###autoload + (defun tree-sitter-langs-install-grammars + (&optional skip-if-installed version os + keep-bundle) + (interactive) + (message \"~a\")) + (defconst tree-sitter-langs--queries-dir + (file-name-as-directory + (concat (file-name-directory + (locate-library \"tree-sitter-langs.el\")) + \"queries\"))) + (defun tree-sitter-langs--bin-dir () \"~a\") + (provide 'tree-sitter-langs-build)" + on-load-message + #$emacs-tree-sitter-langs-grammar-bundle)))))) + (add-after 'unpack 'remove-cask + (lambda _ + (substitute* "script/test" + (("cask") "")))) + (add-before 'check 'patch-tree-sitter-require-test + (lambda _ + (use-modules (ice-9 regex)) + ;; This test needs a git repositories with submodules for + ;; each languages in order to map all repositories. We patch + ;; the mapping function with one that invokes the tests for + ;; each packaged language. + (let ((supported-languages + (map (lambda (lib) + (match:substring + (string-match "(.*)\\.so$" (basename lib)) + 1)) + (find-files "bin" "\\.so$")))) + (substitute* "tree-sitter-langs-tests.el" + (("tree-sitter-langs--map-repos") + (call-with-output-string + (lambda (port) + (write `(lambda (fn) + (dolist (lang ',supported-languages) + (funcall fn lang))) + port)))))))) + ;; Tests for queries will fail given those languages are not + ;; packaged yet. + (add-before 'check 'remove-unused-highlight-queries + (lambda _ + (delete-file-recursively "queries/hcl") + (delete-file-recursively "queries/pgn") + (delete-file-recursively "queries/yaml"))) + (add-after 'install 'install-queries + (lambda _ + (copy-recursively + "queries" + (string-append (elpa-directory #$output) "/queries"))))))) + (home-page "https://emacs-tree-sitter.github.io/languages/") + (synopsis "Language support bundle for Tree-sitter") + (description "This package is a convenient language bundle for +Tree-sitter. For each supported language, this package provides: + +@enumerate +@item Pre-compiled grammar binaries. +@item An optional highlights.scm file that provides highlighting patterns. +This is mainly intended for major modes that are not aware of tree-sitter. +@item Optional query patterns for other minor modes that provide high-level +functionalities on top of tree-sitter, such as code folding, evil text +objects, ...etc. +@end enumerate + +The following languages are currently supported in Guix: + +@itemize +@item Bash +@item C +@item C# +@item C++ +@item Clojure +@item CSS +@item Elixir +@item Elm +@item Go +@item Haskell +@item HTML +@item Java +@item JavaScript +@item JSON +@item Julia +@item Lua +@item Markdown +@item Ocaml +@item PHP +@item Python +@item R +@item Ruby +@item Rust +@item Typescript +@end itemize") + (license license:expat)))