X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter Resent-From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 31 Dec 2022 15:01:02 +0000 Resent-Message-ID: <handler.60453.B.167249881518934 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 60453 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.167249881518934 (code B ref -1); Sat, 31 Dec 2022 15:01:02 +0000 Received: (at submit) by debbugs.gnu.org; 31 Dec 2022 15:00:15 +0000 Received: from localhost ([127.0.0.1]:39607 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pBdLL-0004vJ-6w for submit <at> debbugs.gnu.org; Sat, 31 Dec 2022 10:00:15 -0500 Received: from lists.gnu.org ([209.51.188.17]:47546) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <wkirschbaum@HIDDEN>) id 1pBdLJ-0004vA-I4 for submit <at> debbugs.gnu.org; Sat, 31 Dec 2022 10:00:13 -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 <wkirschbaum@HIDDEN>) id 1pBdLI-0000SE-TG for bug-gnu-emacs@HIDDEN; Sat, 31 Dec 2022 10:00:13 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <wkirschbaum@HIDDEN>) id 1pBdLG-0004yz-QK for bug-gnu-emacs@HIDDEN; Sat, 31 Dec 2022 10:00:12 -0500 Received: by mail-wr1-x429.google.com with SMTP id z10so22537239wrh.10 for <bug-gnu-emacs@HIDDEN>; Sat, 31 Dec 2022 07:00:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:user-agent:from:to:cc:subject:date:message-id:reply-to; bh=DxEXYg1Hfjl29fZNPWw/x9V56EUZa1LposNporZOJ90=; b=U+EXDEdK3kXeOzedEUa9w07yyeyl/J+nICK3a+ZqnIgfge1gadf7V9qfyLq8Wm+5/F 8TtsutI6ROurU8d+xYP0DpclVNLQWgPkG2Hw2Qwe9HSci5YvIwNdxv0uHbRpbWkCSRNp VDt3kTudSYQkPuLFPZd+Hs0MjLMhu8dkUD8TJaf4pvH0eFX3dGKzHK85eR7JUhvTSEi4 golUclokuAuap7f0xUh2E0xmYeSkXxu7nVRvG0Fm4VKPNU4awSHTwAejp+AyemVu88rB y8R4tpDh5iOhU1oOQtKokqz6YQBsSx+h1OYxoLiissmiMM5Q7zKIqtSREVCGlZsWuPIg S1rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:user-agent:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DxEXYg1Hfjl29fZNPWw/x9V56EUZa1LposNporZOJ90=; b=ry44x7ugwjshmqc2SEP+J1G8GNSoRMIXqeUyDdykSkF1xNzo9Yb2Up6MyOknCg0v2r nKq1KSlsJAvT6bZh8TKJU2V1MfRaKlycw3CsSOpG7vF7RkFZFD01dNw0isw96pB9e+UX O8vnUe5DmSOC+VAmWYxO05RWdq+kJSrfLrxxB19Whs0mvma2P6kYQcsQMWTGBWC6yykm Z5qD8z1wBPXqMKkhHo3N1Qd6iB09fJBSIGfBK7lqCrW8pwFQj4EgwS8wt1C6VIAZa1uT 8tcXNM9F2KGWBMBYNIT7EHxcGs/BCnpOG1jnusEjlAlHqr0Boh44JTkXbjhh1Nf8fTmF Z+oQ== X-Gm-Message-State: AFqh2kpOLJlDyGG16FBqnXbte4LjWyz1y3I+icYwtrT/fT4/KzTMtvBv 18jNsYCPeGwtoewcFbZIIY9wEN4zwC8= X-Google-Smtp-Source: AMrXdXtO+DwHRe6yIvtD5vQHDVmr5VyyEzdbtPayEVVZzfS6PvHgJ/Udz/xS2nF7080xxCvjh8sXlg== X-Received: by 2002:a05:6000:49:b0:242:6777:c7e2 with SMTP id k9-20020a056000004900b002426777c7e2mr20411945wrx.31.1672498808760; Sat, 31 Dec 2022 07:00:08 -0800 (PST) Received: from melissa.local ([2c0f:ef18:1431:0:b09:9616:db04:c248]) by smtp.gmail.com with ESMTPSA id i1-20020adfb641000000b002425787c5easm23587886wre.96.2022.12.31.07.00.07 for <bug-gnu-emacs@HIDDEN> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Dec 2022 07:00:08 -0800 (PST) User-agent: mu4e 1.9.3; emacs 29.0.60 From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Date: Sat, 31 Dec 2022 16:53:08 +0200 Message-ID: <87wn67sjnw.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=wkirschbaum@HIDDEN; helo=mail-wr1-x429.google.com 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) With the following code without tree-sitter library: (defvar elixir-ts-mode--treesit-range-rules (treesit-range-rules :embed 'heex :host 'elixir '((sigil (sigil_name) @name (:match "^[H]$" @name)=20 (quoted_content) @heex)))) upon loading the mode I get the following error: treesit-range-rules: Symbol=E2=80=99s function definition is void: treesit-query-compile This can easily be mitigated with (when (treesit-available-p)...)=20 but think it should function similar to how (treesit-font-lock-rules=20 work. Wilhelm
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Subject: bug#60453: Acknowledgement (29.0.60; treesit-range-rules throw an error without tree-sitter) Message-ID: <handler.60453.B.167249881518934.ack <at> debbugs.gnu.org> References: <87wn67sjnw.fsf@HIDDEN> X-Gnu-PR-Message: ack 60453 X-Gnu-PR-Package: emacs Reply-To: 60453 <at> debbugs.gnu.org Date: Sat, 31 Dec 2022 15:01:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 60453 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 60453: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D60453 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 31 Dec 2022 16:38:01 +0000 Resent-Message-ID: <handler.60453.B60453.167250468128472 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Cc: 60453 <at> debbugs.gnu.org Received: via spool by 60453-submit <at> debbugs.gnu.org id=B60453.167250468128472 (code B ref 60453); Sat, 31 Dec 2022 16:38:01 +0000 Received: (at 60453) by debbugs.gnu.org; 31 Dec 2022 16:38:01 +0000 Received: from localhost ([127.0.0.1]:39702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pBerw-0007P9-KR for submit <at> debbugs.gnu.org; Sat, 31 Dec 2022 11:38:00 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pBerv-0007Ox-5K for 60453 <at> debbugs.gnu.org; Sat, 31 Dec 2022 11:37:59 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pBerp-0007vJ-Uv; Sat, 31 Dec 2022 11:37:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=38D7n6Wwdy21a0CPOhqYXAC1GhgmT0TI7QXqHAekASI=; b=khOwwTbQMBlDfqGZ4ngr 9Tu3+nKrHv69UDwU61p5Jm0JsnToSZc9ZfgbHMyQCvs5o0IwPO3w61uzX3kYD2MnD93UJXX8FpygA LsU7M7OEfP85bZu+SQBka7b9d0yvNj5Ikya7mtpflgl6PjQ63GEpq7fhz+ORBNyDdDb5aNQynCM0Z pVT6N/yD9oObIQK8ulzG2boCxmlLPjDt2TKUG1M97hy+E/SL754CcIqlQ8cJQ9z00CuZyMTmFmNWK owPtfI0yi9exxkO4Koe6TtftaRSc4czJwbUzWJ6NIXXRf/J4LUmGwF6HEKbl6X1354OSxmW0opWlc 3UzW2gmIEHMd8Q==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pBerp-0001be-9b; Sat, 31 Dec 2022 11:37:53 -0500 Date: Sat, 31 Dec 2022 18:37:55 +0200 Message-Id: <83lemn4jh8.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87wn67sjnw.fsf@HIDDEN> (message from Wilhelm Kirschbaum on Sat, 31 Dec 2022 16:53:08 +0200) References: <87wn67sjnw.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> > Date: Sat, 31 Dec 2022 16:53:08 +0200 > > > With the following code without tree-sitter library: > > (defvar elixir-ts-mode--treesit-range-rules > (treesit-range-rules > :embed 'heex > :host 'elixir > '((sigil (sigil_name) @name (:match "^[H]$" @name) > (quoted_content) > @heex)))) > > upon loading the mode I get the following error: > > treesit-range-rules: Symbol’s function definition is void: > treesit-query-compile > > This can easily be mitigated with (when (treesit-available-p)...) > but think it should function similar to how (treesit-font-lock-rules > work. Why does it make sense to protect treesit.el's code with treesit-available-p? You aren't supposed to use treesit.el functions when the tree-sitter library is not available. IOW, Lisp programs that want to use treesit-range-rules and other functions from treesit.el should make the treesit-available-p test _before_ that.
X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter Resent-From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 31 Dec 2022 17:00:02 +0000 Resent-Message-ID: <handler.60453.B60453.167250598430665 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 60453 <at> debbugs.gnu.org Received: via spool by 60453-submit <at> debbugs.gnu.org id=B60453.167250598430665 (code B ref 60453); Sat, 31 Dec 2022 17:00:02 +0000 Received: (at 60453) by debbugs.gnu.org; 31 Dec 2022 16:59:44 +0000 Received: from localhost ([127.0.0.1]:39724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pBfCx-0007yX-RL for submit <at> debbugs.gnu.org; Sat, 31 Dec 2022 11:59:44 -0500 Received: from mail-wm1-f50.google.com ([209.85.128.50]:54051) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <wkirschbaum@HIDDEN>) id 1pBfCw-0007yJ-6M for 60453 <at> debbugs.gnu.org; Sat, 31 Dec 2022 11:59:42 -0500 Received: by mail-wm1-f50.google.com with SMTP id ja17so17513429wmb.3 for <60453 <at> debbugs.gnu.org>; Sat, 31 Dec 2022 08:59:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:in-reply-to:date :subject:cc:to:from:user-agent:references:from:to:cc:subject:date :message-id:reply-to; bh=4zKCKEGCKArbsZuD1RbWoDd55huAOzG3cs2fY/dxpRA=; b=cEiRf2sIJMyhBbGKp7NzmZ5+DgpiKqO6Ym+M2eBx7pGF3IvWiNM3ot2PoMF9gl6I/J bnMCtU6RrigRk+0U/mEt6E2JpZ0IyXr1WPHlOH/rSqc6PIlgoaK8Rwx0OyJucy1El9U2 KGJGvrM+A5qi8UytPru7Sm7zKE8VTC2QyiNLS2pDhWsBUyllj4G6+cqNcv8Ryqbtw4p2 n1j8N4ZXaccXbGSp0E6B3uuw58XuFUbH1+99Z2+S8z8nRDKORkQArtoMTwhSTnqq0w5Q dv/ouTxWqe/FgLwElOML5koXV1we26+pr3+OFIeAhTi8zU29KAfKhnY+MtYGhj+iae71 Ajgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:in-reply-to:date :subject:cc:to:from:user-agent:references:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=4zKCKEGCKArbsZuD1RbWoDd55huAOzG3cs2fY/dxpRA=; b=XUPlLjxHC1ar1kiN3jTvCcz2vbw+S8QBnzOXvstWFudO81ciLEDapNtk0oI8bN4Ygu 3leaVEfoTbugZZ3hEwu/qhOIx79HDrkbUsI86PBIrPWyo4RaTtEh9MLLHyVvSZQRIRRu nIbMxkYoHQwXK8Pzkj53T5a7cRFc8c4Y6WEKex6M3JEkGHbcER9B+472zPh/+5dzew9h Uz/4kKpMEi1S1CDXyAwv6IAsI7HtJEzIT2sqq0NLr8S1XPSE/GlGD+ts879v4xl4+0pB YmPU7eS5+ElXnbcI3eFTv0J8wD/UrrDUpwX7SM7s09to6f5AyBUwFL/vULi5J3cA04xs msXA== X-Gm-Message-State: AFqh2krJ+enTSAP34LVhgMo3PCzw0rS3sTtQ3uF+ePp0ydXkITgE9PCE ULnTwYfLl2Aa2DGCTXs/iQRD+EmfLhQ= X-Google-Smtp-Source: AMrXdXveKuBoZKjHI3CkNad7IpPaDZfCQgH6aASEaEf+qifSb7VoqforMONiZyzzPRNHLk+5e+gTBQ== X-Received: by 2002:a05:600c:a13:b0:3d0:2485:c046 with SMTP id z19-20020a05600c0a1300b003d02485c046mr25014850wmp.27.1672505975838; Sat, 31 Dec 2022 08:59:35 -0800 (PST) Received: from melissa.local ([2c0f:ef18:1431:0:b09:9616:db04:c248]) by smtp.gmail.com with ESMTPSA id l42-20020a05600c1d2a00b003cfbbd54178sm54676407wms.2.2022.12.31.08.59.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Dec 2022 08:59:35 -0800 (PST) References: <87wn67sjnw.fsf@HIDDEN> <83lemn4jh8.fsf@HIDDEN> User-agent: mu4e 1.9.3; emacs 29.0.60 From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Date: Sat, 31 Dec 2022 18:50:31 +0200 In-reply-to: <83lemn4jh8.fsf@HIDDEN> Message-ID: <87r0wf7bm4.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >> Date: Sat, 31 Dec 2022 16:53:08 +0200 >>=20 >>=20 >> With the following code without tree-sitter library: >>=20 >> (defvar elixir-ts-mode--treesit-range-rules >> (treesit-range-rules >> :embed 'heex >> :host 'elixir >> '((sigil (sigil_name) @name (:match "^[H]$" @name)=20 >> (quoted_content) >> @heex)))) >>=20 >> upon loading the mode I get the following error: >>=20 >> treesit-range-rules: Symbol=E2=80=99s function definition is void: >> treesit-query-compile >>=20 >> This can easily be mitigated with (when=20 >> (treesit-available-p)...) >> but think it should function similar to how=20 >> (treesit-font-lock-rules >> work. > > Why does it make sense to protect treesit.el's code with > treesit-available-p? You aren't supposed to use treesit.el=20 > functions > when the tree-sitter library is not available. IOW, Lisp=20 > programs > that want to use treesit-range-rules and other functions from > treesit.el should make the treesit-available-p test _before_=20 > that. Okay, that makes sense. I just saw this comment on ;; treesit.el#618 (defun treesit-font-lock-rules (&rest query-specs) ... ;; Other tree-sitter function don't tend to be called unless ;; tree-sitter is enabled, which means tree-sitter must be=20 compiled. ;; But this function is usually call in `defvar' which runs ;; regardless whether tree-sitter is enabled. So we need this ;; guard. (when (treesit-available-p) As treesit-range-rules also gets called with defvar and it is a=20 consistency issue. I think the reason why this has not popped up before is=20 that no other modes I have seen uses treesit-range-rules yet and think it=20 will probably catch people off guard in the future.
X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 31 Dec 2022 17:06:02 +0000 Resent-Message-ID: <handler.60453.B60453.167250633631384 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Cc: 60453 <at> debbugs.gnu.org Received: via spool by 60453-submit <at> debbugs.gnu.org id=B60453.167250633631384 (code B ref 60453); Sat, 31 Dec 2022 17:06:02 +0000 Received: (at 60453) by debbugs.gnu.org; 31 Dec 2022 17:05:36 +0000 Received: from localhost ([127.0.0.1]:39740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pBfIe-0008A8-56 for submit <at> debbugs.gnu.org; Sat, 31 Dec 2022 12:05:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41078) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pBfIc-00089s-38 for 60453 <at> debbugs.gnu.org; Sat, 31 Dec 2022 12:05:34 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pBfIW-0003zu-Mm; Sat, 31 Dec 2022 12:05:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=EqLZdkQa6kk4DPiaBPk6QWiOKjzeAJ8C5/n0nRYbEkI=; b=j84VvzbeeI0BSwi8QeHi OITmADJTiM9EnwHP22SQkGBiHAH/PgSKE8doQ+v8YdaGbBTMazIU9LzWDnXzee2zf/2EGlhnrGINl /p1FTyUqCkoYco+2iNYF1tSmwWLgaNjBM6pXgigCPNB0YlHBuqjcWBUipxWZkfNTWFjrs034iIviK 7xsaGxy+F7mUWqUyUxbJR6OiaPPQIZt0AAxs16BXpn2nRnPtvhyOvDy0/sw2nh8qIZgBTKtMuLBo0 iik07DAfQuIcv2r+ipw2vVloaVL2Mtdtc8QtI3/nksSBnQKs07F38QNkNJKmW/9EzE39Sx0NfQAjm Qegf01k5m60jSA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pBfIV-0001LU-Gw; Sat, 31 Dec 2022 12:05:28 -0500 Date: Sat, 31 Dec 2022 19:05:29 +0200 Message-Id: <83ilhr4i7a.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87r0wf7bm4.fsf@HIDDEN> (message from Wilhelm Kirschbaum on Sat, 31 Dec 2022 18:50:31 +0200) References: <87wn67sjnw.fsf@HIDDEN> <83lemn4jh8.fsf@HIDDEN> <87r0wf7bm4.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> > Cc: 60453 <at> debbugs.gnu.org > Date: Sat, 31 Dec 2022 18:50:31 +0200 > > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> > >> Date: Sat, 31 Dec 2022 16:53:08 +0200 > >> > >> > >> With the following code without tree-sitter library: > >> > >> (defvar elixir-ts-mode--treesit-range-rules > >> (treesit-range-rules > >> :embed 'heex > >> :host 'elixir > >> '((sigil (sigil_name) @name (:match "^[H]$" @name) > >> (quoted_content) > >> @heex)))) > >> > >> upon loading the mode I get the following error: > >> > >> treesit-range-rules: Symbol’s function definition is void: > >> treesit-query-compile > >> > >> This can easily be mitigated with (when > >> (treesit-available-p)...) > >> but think it should function similar to how > >> (treesit-font-lock-rules > >> work. > > > > Why does it make sense to protect treesit.el's code with > > treesit-available-p? You aren't supposed to use treesit.el > > functions > > when the tree-sitter library is not available. IOW, Lisp > > programs > > that want to use treesit-range-rules and other functions from > > treesit.el should make the treesit-available-p test _before_ > > that. > > Okay, that makes sense. I just saw this comment on > > ;; treesit.el#618 > (defun treesit-font-lock-rules (&rest query-specs) > ... > ;; Other tree-sitter function don't tend to be called unless > ;; tree-sitter is enabled, which means tree-sitter must be > compiled. > ;; But this function is usually call in `defvar' which runs > ;; regardless whether tree-sitter is enabled. So we need this > ;; guard. > (when (treesit-available-p) > > As treesit-range-rules also gets called with defvar and it is a > consistency issue. I think the reason why this has not popped up > before is that no other modes I have seen uses treesit-range-rules > yet and think it will probably catch people off guard in the future. It's up to Yuan: if he thinks this is a good idea, he should feel free to add that test. But it's slippery slope, IMNSHO: we will very soon find ourselves adding such tests to every treesit.el function, just because some code somewhere calls that function without a prior test. IOW, IMO a single case of such callers is not enough to add a test. But that's me.
X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter Resent-From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 31 Dec 2022 17:28:02 +0000 Resent-Message-ID: <handler.60453.B60453.1672507667932 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 60453 <at> debbugs.gnu.org Received: via spool by 60453-submit <at> debbugs.gnu.org id=B60453.1672507667932 (code B ref 60453); Sat, 31 Dec 2022 17:28:02 +0000 Received: (at 60453) by debbugs.gnu.org; 31 Dec 2022 17:27:47 +0000 Received: from localhost ([127.0.0.1]:39750 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pBfe6-0000Ew-KX for submit <at> debbugs.gnu.org; Sat, 31 Dec 2022 12:27:46 -0500 Received: from mail-wm1-f49.google.com ([209.85.128.49]:54067) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <wkirschbaum@HIDDEN>) id 1pBfe4-0000Ei-IV for 60453 <at> debbugs.gnu.org; Sat, 31 Dec 2022 12:27:45 -0500 Received: by mail-wm1-f49.google.com with SMTP id ja17so17545697wmb.3 for <60453 <at> debbugs.gnu.org>; Sat, 31 Dec 2022 09:27:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:in-reply-to:date :subject:cc:to:from:user-agent:references:from:to:cc:subject:date :message-id:reply-to; bh=zjQwGg3Y+2hIK/RHI/OzehgknmUKHOZGrGBul5gOYaM=; b=L6qbTf9yThfeLHA68kvSQn1cwDu7xDwvSmq+b7enaUnLPA89aHGEgfhQlszYP7vuP5 msDMSzigAa7Qa5/oYFjQgh6X5JB8ThXOIoxcZuReSxwmsLMq+X0c7dXv8xEEd0bHEaBN cBUSQSjbV/S2KJ6Jrcin29s0H4jzIAdSt1aR0qlcYRUj9jWhM5CS834S/LLj51xPb2tm buF9nrAU8yMd1WDxmiNFvsxf+TooQyh54uZWMelTxi06iqNRr6ll4x563TQg+ExGLMDT up4lSihscftzVw0hM4hT8SsgNF1M9re3I+6aeMFChb73lkDy3CMqGa4asl9GforWYbXr baLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:in-reply-to:date :subject:cc:to:from:user-agent:references:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=zjQwGg3Y+2hIK/RHI/OzehgknmUKHOZGrGBul5gOYaM=; b=keydFNaRZtbYKwsb5QcGvnr0BJ2cd62KmC5k/GGqCDMT+vUkv4Js3yaCZ5LKafA5j4 P/ZHUjC1r7clfydOIKHR9Lczx/aCXaB/38Ef44G0nAXmfryEIdvlJj4DmqtJHPI67zUV ULgFaev3Y7SBy0HJtjfzLb2GLpbf/N78iFhZ2/BCFq/9AB8ziLqfwatVL650zwy+uoxh HI4d/tUh7AmcMMb4WeF8GLlAeHOULrz4uCpIjVZydPxxcg719F9DyLPeXl9qgiJo2/y6 8WZcvUeI95HooOY9CiCIpeGPcKp7fATdgPPXxD9kElm63aoHyGVxed0TNwqY5WV/bTbr zSnA== X-Gm-Message-State: AFqh2kp5eVG4wGJlwvVT7D6iPngRkNxOwOswIQoDDcz1xBYgunI1q9Ze BgooFmEfii8830Ny+ID1dDlD1DdWrV8= X-Google-Smtp-Source: AMrXdXun7QH4/aaH+SJFRtCWMyythnAKkjy3MOO5wvJH2FLmJKxzE54Dlk2D5ygdC3HTQcen8JRo8A== X-Received: by 2002:a05:600c:601e:b0:3c6:e61e:ae71 with SMTP id az30-20020a05600c601e00b003c6e61eae71mr30967104wmb.1.1672507658369; Sat, 31 Dec 2022 09:27:38 -0800 (PST) Received: from melissa.local ([2c0f:ef18:1431:0:b09:9616:db04:c248]) by smtp.gmail.com with ESMTPSA id t184-20020a1c46c1000000b003b4a699ce8esm36912179wma.6.2022.12.31.09.27.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Dec 2022 09:27:37 -0800 (PST) References: <87wn67sjnw.fsf@HIDDEN> <83lemn4jh8.fsf@HIDDEN> <87r0wf7bm4.fsf@HIDDEN> <83ilhr4i7a.fsf@HIDDEN> User-agent: mu4e 1.9.3; emacs 29.0.60 From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> Date: Sat, 31 Dec 2022 19:08:19 +0200 In-reply-to: <83ilhr4i7a.fsf@HIDDEN> Message-ID: <87mt737abd.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >> Cc: 60453 <at> debbugs.gnu.org >> Date: Sat, 31 Dec 2022 18:50:31 +0200 >>=20 >>=20 >> Eli Zaretskii <eliz@HIDDEN> writes: >>=20 >> >> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >> >> Date: Sat, 31 Dec 2022 16:53:08 +0200 >> >>=20 >> >>=20 >> >> With the following code without tree-sitter library: >> >>=20 >> >> (defvar elixir-ts-mode--treesit-range-rules >> >> (treesit-range-rules >> >> :embed 'heex >> >> :host 'elixir >> >> '((sigil (sigil_name) @name (:match "^[H]$" @name)=20 >> >> (quoted_content) >> >> @heex)))) >> >>=20 >> >> upon loading the mode I get the following error: >> >>=20 >> >> treesit-range-rules: Symbol=E2=80=99s function definition is void: >> >> treesit-query-compile >> >>=20 >> >> This can easily be mitigated with (when=20 >> >> (treesit-available-p)...) >> >> but think it should function similar to how=20 >> >> (treesit-font-lock-rules >> >> work. >> > >> > Why does it make sense to protect treesit.el's code with >> > treesit-available-p? You aren't supposed to use treesit.el=20 >> > functions >> > when the tree-sitter library is not available. IOW, Lisp=20 >> > programs >> > that want to use treesit-range-rules and other functions from >> > treesit.el should make the treesit-available-p test _before_=20 >> > that. >>=20 >> Okay, that makes sense. I just saw this comment on >>=20 >> ;; treesit.el#618 >> (defun treesit-font-lock-rules (&rest query-specs) >> ... >> ;; Other tree-sitter function don't tend to be called unless >> ;; tree-sitter is enabled, which means tree-sitter must be=20 >> compiled. >> ;; But this function is usually call in `defvar' which runs >> ;; regardless whether tree-sitter is enabled. So we need=20 >> this >> ;; guard. >> (when (treesit-available-p) >>=20 >> As treesit-range-rules also gets called with defvar and it is a >> consistency issue. I think the reason why this has not popped=20 >> up >> before is that no other modes I have seen uses=20 >> treesit-range-rules >> yet and think it will probably catch people off guard in the=20 >> future. > > It's up to Yuan: if he thinks this is a good idea, he should=20 > feel free > to add that test. But it's slippery slope, IMNSHO: we will very=20 > soon > find ourselves adding such tests to every treesit.el function,=20 > just > because some code somewhere calls that function without a prior=20 > test. > IOW, IMO a single case of such callers is not enough to add a=20 > test. > But that's me. Okay, I will add the checks before defvar anyways to keep things consistent on my side. It does make more sense to me just to not=20 have the guards in the first place as it creates false expectation they=20 will be everywhere.
X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter References: <87wn67sjnw.fsf@HIDDEN> In-Reply-To: <87wn67sjnw.fsf@HIDDEN> Resent-From: Yuan Fu <casouri@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 02 Jan 2023 00:21:02 +0000 Resent-Message-ID: <handler.60453.B60453.167261880625124 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Wilhelm <wkirschbaum@HIDDEN> Cc: Eli Zaretskii <eliz@HIDDEN>, 60453 <at> debbugs.gnu.org Received: via spool by 60453-submit <at> debbugs.gnu.org id=B60453.167261880625124 (code B ref 60453); Mon, 02 Jan 2023 00:21:02 +0000 Received: (at 60453) by debbugs.gnu.org; 2 Jan 2023 00:20:06 +0000 Received: from localhost ([127.0.0.1]:42021 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pC8Yg-0006XA-56 for submit <at> debbugs.gnu.org; Sun, 01 Jan 2023 19:20:06 -0500 Received: from mail-pj1-f51.google.com ([209.85.216.51]:55046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1pC8Ye-0006WT-54 for 60453 <at> debbugs.gnu.org; Sun, 01 Jan 2023 19:20:04 -0500 Received: by mail-pj1-f51.google.com with SMTP id o2so23024420pjh.4 for <60453 <at> debbugs.gnu.org>; Sun, 01 Jan 2023 16:20:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=LTvUSmykm12xlo8yxZ5oTTV1JoXH16TmBuNC/vufrmc=; b=L827zgT8Z6Gd4GvClWg7QLRK8jo36ceQ5LPUCBnLOrwz+BGzf2B8qK1GrNqpsDJ+JI xMh7SJpOzFzmeowFkOeppyvHyfhKJW/EJ2eOYZJ7Abvwm6iAY2k02OM8R2ru08g4kE2a 7KBLbzovkSGNXeQqM/G4lsS4Dbhf8mlHPqYdDocEpqSLoiw4FC8umA3MdjU+xPLaxQSI tAC3vX6t2oxM3sxTvgrQ68gAbmusw+STYxKC+nUHsp/3eU8ODQdG5KG7icbEQZxKqF6X HfKei+lbc3ln8ITWWL5RuO7PVFssf40Fw5Q/RmHVyfICI2un2ZDQl0muUs4xq/bIKRv5 KUiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LTvUSmykm12xlo8yxZ5oTTV1JoXH16TmBuNC/vufrmc=; b=7O9Yiub6ivx/RtnzVpi11B77vr5rfo5a7M+Z7fUnhMguO2BsvXdT7n4n6bFux+rFR/ Hptoo8b6o6DeQ9UImq+hCCo1eIaXqYtyS5VWLRPuzRMZNtsCyUgmw80cxNnYgUuJXTyt RDCq/L4b1bJ00SGnwR3LOzsnaK22w043v/F1pO7BCDKfKRAis4BZerQVlTWn+HpSh3ev X6IX6VYkrAACsMtnjay5Ifow+L73gqxmmVVCulhjlj+v6lmD6dZbhBwt3sufiRg4kxx2 LsnTo2HlL3++3mE5SWfps3d/7Xa6kZAm1NGlnPPyFngYeCIHg3TDXiE+97oB89u2H49w 3+eA== X-Gm-Message-State: AFqh2krClvVYwjODDXMw6kTJGXGrRyBbWLomoXaDXBaa79lTO7VT3LY6 v4RXYjoz9fUbyD0UcYvQ78g= X-Google-Smtp-Source: AMrXdXuKbkbMFJOfhgW9YMiekVNwtDBgEix0n7hzDjk24VOLRSCekYxRsTVvVaVS5+qoO7D/f4xJEA== X-Received: by 2002:a17:902:8ec7:b0:192:4f85:b91d with SMTP id x7-20020a1709028ec700b001924f85b91dmr46134927plo.46.1672618798420; Sun, 01 Jan 2023 16:19:58 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id p2-20020a170902c70200b001898aa48d17sm9315652plp.185.2023.01.01.16.19.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 01 Jan 2023 16:19:58 -0800 (PST) From: Yuan Fu <casouri@HIDDEN> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Message-Id: <45DCDC27-F7FF-4CEB-A667-2407CAB10321@HIDDEN> Date: Sun, 1 Jan 2023 16:19:56 -0800 X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Wilhelm Kirschbaum <wkirschbaum@HIDDEN> writes: > Eli Zaretskii <eliz@HIDDEN> writes: > >>> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >>> Cc: 60453 <at> debbugs.gnu.org >>> Date: Sat, 31 Dec 2022 18:50:31 +0200 >>> Eli Zaretskii <eliz@HIDDEN> writes: >>> >> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >>> >> Date: Sat, 31 Dec 2022 16:53:08 +0200 >>> >> >> >> With the following code without tree-sitter library: >>> >> >> (defvar elixir-ts-mode--treesit-range-rules >>> >> (treesit-range-rules >>> >> :embed 'heex >>> >> :host 'elixir >>> >> '((sigil (sigil_name) @name (:match "^[H]$" @name) >> >>> (quoted_content) >>> >> @heex)))) >>> >> >> upon loading the mode I get the following error: >>> >> >> treesit-range-rules: Symbol=E2=80=99s function definition is = void: >>> >> treesit-query-compile >>> >> >> This can easily be mitigated with (when >> >>> (treesit-available-p)...) >>> >> but think it should function similar to how >> >>> (treesit-font-lock-rules >>> >> work. >>> > >>> > Why does it make sense to protect treesit.el's code with >>> > treesit-available-p? You aren't supposed to use treesit.el > >>> functions >>> > when the tree-sitter library is not available. IOW, Lisp > >>> programs >>> > that want to use treesit-range-rules and other functions from >>> > treesit.el should make the treesit-available-p test _before_ > >>> that. >>> Okay, that makes sense. I just saw this comment on >>> ;; treesit.el#618 >>> (defun treesit-font-lock-rules (&rest query-specs) >>> ... >>> ;; Other tree-sitter function don't tend to be called unless >>> ;; tree-sitter is enabled, which means tree-sitter must be >>> compiled. >>> ;; But this function is usually call in `defvar' which runs >>> ;; regardless whether tree-sitter is enabled. So we need this >>> ;; guard. >>> (when (treesit-available-p) >>> As treesit-range-rules also gets called with defvar and it is a >>> consistency issue. I think the reason why this has not popped up >>> before is that no other modes I have seen uses treesit-range-rules >>> yet and think it will probably catch people off guard in the >>> future. >> >> It's up to Yuan: if he thinks this is a good idea, he should feel >> free >> to add that test. But it's slippery slope, IMNSHO: we will very >> soon >> find ourselves adding such tests to every treesit.el function, just >> because some code somewhere calls that function without a prior >> test. >> IOW, IMO a single case of such callers is not enough to add a test. >> But that's me. > > Okay, I will add the checks before defvar anyways to keep things > consistent on my side. It does make more sense to me just to not have > the > guards in the first place as it creates false expectation they will be > everywhere. I wonder if we should remove that guard in treesit-font-lock-rules... It looked like a good idea at the time, but now I can see it creating confusion going forward. Yuan
X-Loop: help-debbugs@HIDDEN Subject: bug#60453: 29.0.60; treesit-range-rules throw an error without tree-sitter References: <87wn67sjnw.fsf@HIDDEN> In-Reply-To: <87wn67sjnw.fsf@HIDDEN> Resent-From: Yuan Fu <casouri@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 17 Jan 2023 09:42:02 +0000 Resent-Message-ID: <handler.60453.B60453.16739485183452 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 60453 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Wilhelm <wkirschbaum@HIDDEN> Cc: Eli Zaretskii <eliz@HIDDEN>, 60453 <at> debbugs.gnu.org Received: via spool by 60453-submit <at> debbugs.gnu.org id=B60453.16739485183452 (code B ref 60453); Tue, 17 Jan 2023 09:42:02 +0000 Received: (at 60453) by debbugs.gnu.org; 17 Jan 2023 09:41:58 +0000 Received: from localhost ([127.0.0.1]:35805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pHiTd-0000tY-MG for submit <at> debbugs.gnu.org; Tue, 17 Jan 2023 04:41:58 -0500 Received: from mail-pg1-f181.google.com ([209.85.215.181]:35787) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1pHiTb-0000tF-4w for 60453 <at> debbugs.gnu.org; Tue, 17 Jan 2023 04:41:55 -0500 Received: by mail-pg1-f181.google.com with SMTP id f3so21518153pgc.2 for <60453 <at> debbugs.gnu.org>; Tue, 17 Jan 2023 01:41:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=rdASjmu65jH1d3TML0+reWxU4rGwgjZYscLn4/GVYqg=; b=PbCFKeC2DsiO0uKVnihyIQJ0rPJUop27/KhLddnMD35dWw3qZ7fazdpWOE28LiB/ZE aJhrMuF798eZ2aKYfJq1pFd2PNkla0dzQ4+AnnHC+tywLXVK4Wn1yaJ/3sFesaUQ22CL 2y2063Gg+VJVLLYvljKeNXgQxbVV+4/sdQi3t6yyreu04H0LJc0+1FsqC+hTI/QKVvPE DWt/YKj84hPK1Kxm5eDR1SE9mGBTTqxFCAYDwbbjglATMHGLKHJeRG+ox4iaR+KYKeBt sd6JxEmSvHfIHs+1dRxOCchQklHzr5PY2nbpDwxTs9PtSXqfA3idp5tW+cdqPXCMlgoq M9oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rdASjmu65jH1d3TML0+reWxU4rGwgjZYscLn4/GVYqg=; b=sNHj5tyShpBi1yZMoXdjoaxYX6Lwbasprrwy0ZOTGvtmy9QKf1b8f34dmHWUGEWd0b eX2vKkvTPedHe06vqHdUS7YgsXme2MEwhS5LwzmdsPDYgbJXnjZKVpID6FwB2gvIZaAJ kDz8GuKVbxM7hdXB8UiN+d1ieq9ER9y4vhA7dEY2cVSYMtWJFnFduwC/fQbXF7iS6R7x bWxETeOhXxYIkMjx7fPJ8UA3vvvB922yuC96hmzD3TxFtaSSY6SkDGm3+u4vzzTG0LK2 2SzE1KpXdkNy8b8cKipvAapcriAJLNxM5zcZYY+X/yiw+x1hRZLemRl162YisJmG4gV+ 1JlQ== X-Gm-Message-State: AFqh2koXV1wqy7kU6nUUwzUzK7l5kE7wJNOUMZXizEKTjnIkjuPY4jc1 NYK1BY0ToCPTwMzCdZnTERU= X-Google-Smtp-Source: AMrXdXskiAUjpcj12riynidXPkL5iwpSuliCQJO9q3T4R68HdaXN7n+g5VvCnVF2fYxPSar3BGndGw== X-Received: by 2002:aa7:8544:0:b0:58d:d0de:fc11 with SMTP id y4-20020aa78544000000b0058dd0defc11mr693565pfn.31.1673948509613; Tue, 17 Jan 2023 01:41:49 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id i1-20020a056a00004100b00581a156b920sm7404451pfk.132.2023.01.17.01.41.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Jan 2023 01:41:49 -0800 (PST) From: Yuan Fu <casouri@HIDDEN> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Message-Id: <45844FFA-6D03-4B0E-9170-C62BDDE73438@HIDDEN> Date: Tue, 17 Jan 2023 01:41:48 -0800 X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Yuan Fu <casouri@HIDDEN> writes: > Wilhelm Kirschbaum <wkirschbaum@HIDDEN> writes: > >> Eli Zaretskii <eliz@HIDDEN> writes: >> >>>> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >>>> Cc: 60453 <at> debbugs.gnu.org >>>> Date: Sat, 31 Dec 2022 18:50:31 +0200 >>>> Eli Zaretskii <eliz@HIDDEN> writes: >>>> >> From: Wilhelm Kirschbaum <wkirschbaum@HIDDEN> >>>> >> Date: Sat, 31 Dec 2022 16:53:08 +0200 >>>> >> >> >> With the following code without tree-sitter library: >>>> >> >> (defvar elixir-ts-mode--treesit-range-rules >>>> >> (treesit-range-rules >>>> >> :embed 'heex >>>> >> :host 'elixir >>>> >> '((sigil (sigil_name) @name (:match "^[H]$" @name) >> >>>> (quoted_content) >>>> >> @heex)))) >>>> >> >> upon loading the mode I get the following error: >>>> >> >> treesit-range-rules: Symbol=E2=80=99s function definition is = void: >>>> >> treesit-query-compile >>>> >> >> This can easily be mitigated with (when >> >>>> (treesit-available-p)...) >>>> >> but think it should function similar to how >> >>>> (treesit-font-lock-rules >>>> >> work. >>>> > >>>> > Why does it make sense to protect treesit.el's code with >>>> > treesit-available-p? You aren't supposed to use treesit.el > >>>> functions >>>> > when the tree-sitter library is not available. IOW, Lisp > >>>> programs >>>> > that want to use treesit-range-rules and other functions from >>>> > treesit.el should make the treesit-available-p test _before_ > >>>> that. >>>> Okay, that makes sense. I just saw this comment on >>>> ;; treesit.el#618 >>>> (defun treesit-font-lock-rules (&rest query-specs) >>>> ... >>>> ;; Other tree-sitter function don't tend to be called unless >>>> ;; tree-sitter is enabled, which means tree-sitter must be >>>> compiled. >>>> ;; But this function is usually call in `defvar' which runs >>>> ;; regardless whether tree-sitter is enabled. So we need this >>>> ;; guard. >>>> (when (treesit-available-p) >>>> As treesit-range-rules also gets called with defvar and it is a >>>> consistency issue. I think the reason why this has not popped up >>>> before is that no other modes I have seen uses treesit-range-rules >>>> yet and think it will probably catch people off guard in the >>>> future. >>> >>> It's up to Yuan: if he thinks this is a good idea, he should feel >>> free >>> to add that test. But it's slippery slope, IMNSHO: we will very >>> soon >>> find ourselves adding such tests to every treesit.el function, just >>> because some code somewhere calls that function without a prior >>> test. >>> IOW, IMO a single case of such callers is not enough to add a test. >>> But that's me. >> >> Okay, I will add the checks before defvar anyways to keep things >> consistent on my side. It does make more sense to me just to not = have >> the >> guards in the first place as it creates false expectation they will = be >> everywhere. > > I wonder if we should remove that guard in treesit-font-lock-rules... = It > looked like a good idea at the time, but now I can see it creating > confusion going forward. I think it=E2=80=99s too late to change treesit-font-lock-rules, maybe = we should add the guard to treesit-range-rules, just to be consistent? We can make it an convention to add guards to all treesit-xxx-rules functions. Yuan
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.