From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Tree-sitter introduction documentation Date: Sat, 31 Dec 2022 11:24:27 +0200 Message-ID: <83sfgw3oz8.fsf@gnu.org> 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> <83pmc50xxc.fsf@gnu.org> <71cfe4e8-3bb8-b0a6-9be5-8c0a6d92cfab@yandex.ru> <83h6xg29z3.fsf@gnu.org> <87wn6cyey5.fsf@posteo.net> <787B1EB4-1925-4679-8747-449DCD685432@gmail.com> <83y1qo6h7a.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9244"; mail-complaints-to="usenet@ciao.gmane.io" Cc: philipk@posteo.net, monnier@iro.umontreal.ca, dgutov@yandex.ru, theophilusx@gmail.com, emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 31 10:25:07 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 1pBY70-0002FP-TQ for ged-emacs-devel@m.gmane-mx.org; Sat, 31 Dec 2022 10:25:07 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pBY6Q-0001DX-7z; Sat, 31 Dec 2022 04:24:30 -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 1pBY6P-0001DN-9N for emacs-devel@gnu.org; Sat, 31 Dec 2022 04:24:29 -0500 Original-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 ) id 1pBY6N-0001OT-Pz; Sat, 31 Dec 2022 04:24:27 -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=esoYzeurvfG13sjAk6l1ralrUv1pWDWn3ummURXNi/I=; b=muDynKSC3LfSdEPJHjYx bRi/lS9QnqU4rKHoNRnobt3TV/YRLsUs0mFXOpsLqQCuIu0jGw7dxqbPZkFSf7oPHaw0bKompjuyO kPHE+zwxR6S3uwnvDrlfuH6ntAu6YTzPwPAuo27ZON0+vdG1QJ68KCVVY+Oyyc0yynTXgFaCmgdKL xc776c1AJn3RpsMpsxG3igbMGmB1Xb/bZPaK9geacuc/mI5265ZsdNHuopupCFjEb3gJiNwfDG0Wb ACmbguZWQ9SKOoYN9PumzudjB1nEbMM1T5bPybM3Z9AcR23+rhwqE88MWuHeKZPS3jUkmBFChjMkw +IJq2KCiPUPhLA==; Original-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 ) id 1pBY6N-0000eE-6Z; Sat, 31 Dec 2022 04:24:27 -0500 In-Reply-To: (message from Yuan Fu on Fri, 30 Dec 2022 16:03:42 -0800) 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:302153 Archived-At: > From: Yuan Fu > Date: Fri, 30 Dec 2022 16:03:42 -0800 > Cc: Philip Kaludercic , > monnier@iro.umontreal.ca, > dgutov@yandex.ru, > theophilusx@gmail.com, > emacs-devel@gnu.org > > > I don't think treesit-language-source-alist is a good idea, especially > > if we don't intend populating it, at least not as a user-facing > > feature. Instead, the command should ask the user for the relevant > > values, and offer recording the values on some file that would be read > > next time the user wants to install an updated library. > > I consider this as a fallback method for installing language grammars. Because distress might not end up bundle language grammar for us, and even if they do, they can’t cover every grammar so some user would end up needing to install some grammar by themselves. If we don’t include this feature, someone will definitely write something like this and make it a third-party package (indeed, someone already has). So we might have it in Emacs and do it right. > > This is the use case that I had in mind when writing this function: some major mode xxx-mode requires language grammar for xxx, so it has the following instruction in its readme: > > Add installation recipe of tree-sitter-xxx to your config, and run treesit-install-language-grammar: > > (add-to-list 'treesit-language-source-alist > '(xxx "https://github.com/xxx/tree-sitter-xxx.git")) This is a user command, so it must comply to some minimal level of usefulness and user-friendliness. Right now, if you invoke the command after just loading treesit.el, you will be stuck at the first prompt, since Emacs says "No match" whatever language you try to type at the front. Why not allow the user to specify all the necessary data needed for a language, if treesit-language-source-alist lacks those details for that language? You can then update the data structure with those details. Wouldn't this be much better and user-friendlier than asking users to read the readme and fill a data structure (which some of them could fill wrongly, not being Lisp programmers) in advance? > > This command should also be mentioned in NEWS, where we describe how > > to install the grammar libraries. > > I’ll do that if we decide this function is desirable and good. ?? It's already on the branch, so I think we are past that point?