From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Tree-sitter introduction documentation Date: Tue, 27 Dec 2022 10:58:31 -0500 Message-ID: References: <83edszjslp.fsf@gnu.org> <87tu1vxs3a.fsf@ledu-giraud.fr> <831qozjob7.fsf@gnu.org> <87cz8jxoat.fsf@ledu-giraud.fr> <83wn6ri7pn.fsf@gnu.org> <5e0a3185-de82-b339-0fa2-956779e63d6f@cornell.edu> <868rj6vfep.fsf@gmail.com> <4895891b-e5ea-9c37-f51b-df2e479ee758@yandex.ru> <83y1qt11xq.fsf@gnu.org> <9eb013da-d0fc-8e17-c6e3-1e8f913aebfa@yandex.ru> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18890"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Eli Zaretskii , theophilusx@gmail.com, emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Dec 27 16:59:34 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pACMW-0004m6-JC for ged-emacs-devel@m.gmane-mx.org; Tue, 27 Dec 2022 16:59:32 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pACLg-00059S-5r; Tue, 27 Dec 2022 10:58:40 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pACLd-00058s-TM for emacs-devel@gnu.org; Tue, 27 Dec 2022 10:58:37 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pACLb-0000Gg-Uu; Tue, 27 Dec 2022 10:58:37 -0500 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 1572A8026A; Tue, 27 Dec 2022 10:58:34 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 94D8A8005E; Tue, 27 Dec 2022 10:58:32 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1672156712; bh=oTMX9hw80ym3ZgoX2rzJduVk1tC/qjTxkOVEZJZLzBY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=nJPU1xecY+N7QqlJ1QYqHB50gvqyoh/jNaD6mRV0R3bQ3dzrb1Ccee3vFlRxIBq4x pOCWV+ypIdfBck5878mm4bqQXq/Jfdm44EvhL7ZB8B559sEws70ZHKm5SmPBrVRbl1 Qfh5Vuj7B0V762D3D5/toOjwf4UaPLgsqM6cI03ZflsfkemD3N8DQq9utkj7Q27gNI YVuZ4FIl09BGE0d6ry7lF5ghTVP8AZB3WcjnCRpLj+YgbI6v1lB4CLA6QPyRK0xoZZ cI2C9aNEAoPLe+cjKtZZ9U1AtT/DJ3mCCBBbcF9F8yGQXyd6tQdeI9Qz5qheX8d8bl mO08ehuDbubcQ== Original-Received: from pastel (unknown [45.72.200.228]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 4B8781201A4; Tue, 27 Dec 2022 10:58:32 -0500 (EST) In-Reply-To: <9eb013da-d0fc-8e17-c6e3-1e8f913aebfa@yandex.ru> (Dmitry Gutov's message of "Tue, 27 Dec 2022 14:43:06 +0200") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:301966 Archived-At: > I think ELPA is a better place for this feature, though. Because we always > want the user to get the latest version of the recipes. A GNU ELPA package that helps install those grammars would make sense, indeed. At the same time there are some issues: - This one package probably can't know about all the grammars needed by all the major modes out there. - As you noted, the major mode is actually tied (typically via node names in the queries) to a particular grammar, so keeping that info separately from the major mode doesn't sound ideal. I suspect we do need some `treesit-grammars` package that helps install those grammars, and I think it makes a lot of sense for it to be a :core package (or to be bundled in the Emacs tarball) so users don't need to install that package before they get to install the grammars. Maybe that package should also hold the locations of the grammars used by the major modes that are in core. But for major modes that aren't in core, it makes more sense to keep the grammar location info with the major mode (and use the `treesit-grammars` package to take care of fetching, compiling, and storing the result at the appropriate place). Stefan