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 api Date: Fri, 17 Sep 2021 08:23:27 -0400 Message-ID: References: <83r1f7hydn.fsf@gnu.org> <3BC29D06-CA75-4706-9AD7-ABA2F65C4DEE@gmail.com> <83v936fj35.fsf@gnu.org> <83r1dselyo.fsf@gnu.org> <6A4CE984-6ACE-4E66-8EF2-F3D351C02248@gmail.com> <83r1dscpt2.fsf@gnu.org> <83o88wcof9.fsf@gnu.org> <83lf3zdh4z.fsf@gnu.org> <8965C4A0-79D3-4D77-A6BA-D07A6C93F7FE@gmail.com> <83ilz3cs4k.fsf@gnu.org> <04D19C1A-CD64-4156-B932-1C9FEEE4EC7B@gmail.com> <83zgsebc0r.fsf@gnu.org> <1F752923-F357-4A18-B6E2-0120F1B9BD37@gmail.com> <83fsu5bzem.fsf@gnu.org> <83zgsdad5j.fsf@gnu.org> <83sfy391ni.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35063"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Yuan Fu , ubolonton@gmail.com, theo@thornhill.no, cpitclaudel@gmail.com, emacs-devel@gnu.org, stephen_leake@stephe-leake.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 17 14:24:43 2021 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 1mRCv4-0008sJ-SI for ged-emacs-devel@m.gmane-mx.org; Fri, 17 Sep 2021 14:24:43 +0200 Original-Received: from localhost ([::1]:57390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mRCv3-0001gC-9w for ged-emacs-devel@m.gmane-mx.org; Fri, 17 Sep 2021 08:24:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39094) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mRCu1-0000n8-0K for emacs-devel@gnu.org; Fri, 17 Sep 2021 08:23:37 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:34333) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mRCtw-0002se-R0; Fri, 17 Sep 2021 08:23:35 -0400 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id AD84310018A; Fri, 17 Sep 2021 08:23:29 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 341E8100054; Fri, 17 Sep 2021 08:23:28 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1631881408; bh=jw7s3UU9dFY+/dxoyPh5QGkkZIlxdkfBJL9Z2gcI9gk=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=l1MuOqPIVJtsL8CkcuH8nxoHMOpHxkAdFiyr6QM6nJyVO3kMxY/yspWXK9FxSEolp 6eBDt2y0ge6pqtatDM5e3v8BJ8HpQP2lZ0IyG1cKmxwFDTA1euSz6yLztJtK+YKA34 lnfE00P6CAIOt8Xi8oDFsb6aBnapiLrc0uBnLBcM9SETIxSg8yJwkJUulQNRLNV/Cb Z2sg3Jd3Q/MhcFgOS8QrMRQPMVTwswbUXSer16OZ5GjMBrspiZI4YPQhXt0rezJ8af d5caJEys6Jm67qSwyoqmeQpCmRrbrF1T8VW3LQW4oKBjd+LhzK+Th8vFuFXsN9C+Pr 9J40HnvzeXJLw== Original-Received: from pastel (unknown [45.72.241.23]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E2B33120172; Fri, 17 Sep 2021 08:23:27 -0400 (EDT) In-Reply-To: <83sfy391ni.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 17 Sep 2021 09:06:25 +0300") 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.23 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" Xref: news.gmane.io gmane.emacs.devel:274864 Archived-At: >> My point is, major mode writers need to read the source of the tree-sitter >> language definition to do anything useful with tree-sitter > > If this is so, then why do we bother documenting the Lisp APIs for > TS-related features? If Lisp programmers need to read the TS sources > to do anything useful in Emacs, let them read the sources, including > the Lisp and C sources you are working on? The "source of the tree-sitter language definition" is the language's grammar (in the format defined by TS). It's written in its own language and is independent from the code of the TS runtime or the code of the TS bindings in Emacs. For a major mode to use TS, the major mode's code needs to know; - The name of the language's grammar file. This can usually/often be guessed from the language's name and is a trivial piece of information. - The names of the various nodes that will appear in the AST. Those are specific to the particular grammar being used, and the best place to find them is in the source code of the grammar, tho you can also just find them by experimentation. Stefan