From unknown Sun Jun 15 08:43:33 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#55428 <55428@debbugs.gnu.org> To: bug#55428 <55428@debbugs.gnu.org> Subject: Status: [feature/tree-sitter] Simplify the parser creation API Reply-To: bug#55428 <55428@debbugs.gnu.org> Date: Sun, 15 Jun 2025 15:43:33 +0000 retitle 55428 [feature/tree-sitter] Simplify the parser creation API reassign 55428 emacs submitter 55428 Daniel Mart=C3=ADn severity 55428 wishlist thanks From debbugs-submit-bounces@debbugs.gnu.org Sun May 15 10:16:21 2022 Received: (at submit) by debbugs.gnu.org; 15 May 2022 14:16:21 +0000 Received: from localhost ([127.0.0.1]:50354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqF2c-0006Hv-WA for submit@debbugs.gnu.org; Sun, 15 May 2022 10:16:20 -0400 Received: from lists.gnu.org ([209.51.188.17]:34514) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqF2b-0006Hn-7k for submit@debbugs.gnu.org; Sun, 15 May 2022 10:16:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nqF2a-0005Zw-Cv for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 10:16:13 -0400 Received: from sonic305-20.consmr.mail.ir2.yahoo.com ([77.238.177.82]:41521) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nqF2X-00035B-HB for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 10:16:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.es; s=s2048; t=1652624164; bh=hF+aBCWh1wmU7WnqTckisao0LYOwR+PXusTUfISC+9w=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=pIiyJf/dYjiCZV0wF6NG8hig4CZCAXFFFNXemAndNia3JgNS8INp0Dwg2h6y/XTl6z1+D8O+aezVvTy/LXMUthGCAlXOLjAWpX7h4Wmb15IPljZck5foZOCxvCusj1by4y8zdGPRZn4Fjut4zxdqzTFFFEe2LNC3t6cQIc5B8Rgp5RVV1I85IcRysFMs/g5N4Bn1Ht0fLMxp3x3o195ybei0na2tAOnNgP7Cj0tIOJSNw73dCX8T7W+D0bOlQ7L7HMzSIepLCrKitMhIzsXVID//z5nJFwJXjkdn4vZxd+7emaftlhPMvvuxOaVWFbMRiz2blU6iM8V/3MH984sA3A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1652624164; bh=Wsu4nfFd3UBTvReZysg9w8mGFKoP5/SMJiW6WZ7njdX=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=kdT4Rl7JD9Su0eu9VAMdOtwTIJ1SsyQwOgUyZrYXHQ+lifL7gU+xLs7ejiZexrDViYcyu3R1SU9kDZ7DzHtZV/GRd3eYcWPbZ2Ry3fqye9miP5fyD6el1vPTUl6a6TdTm8I13lPd+8G+rlFH2IdDoCwi3ZXqtdbYDIX6tHUo5r63pZCjoD9qxvDgFInLalLB33iVFNqq0QMn6fqxj7NwRsua1gNspsi1NEnU1oJDDVPPzTDziLavyFpERB5e5ZyqJAFWQiPXAaK+IQOUi2E7lE2MbdBunR7qiBr5+wjmAh5Rb+WhPKqheySfhrwP43F3S4TRaHd4Q9eudbGDQGF4Bw== X-YMail-OSG: PZ5stT8VM1m0kyvgv3cbBEUyGrEywMNKoCAzabgoYkIXmribtm_UxvWKFTqrfTi IYd4yxkAGYQvbWhFeps2R18_3Qkvl0QtTRfDhgoIdNR7s7H5WS0gNGXSoUh7RMvRtNlvxLIcQz.a T3zbnKo7dDxI3x81M19tolxaYE7wag61s7W4JTeKKO5KkY2zDH3rY8xuocEIMzITDo80j9S1WZUd JGQ7Z3TVY1oJn3tLA68KRBeffv2KL22YCNqZlX6G4mxaChI0WTvGT4oo1iBwisldujNEEF_.nO8W BamcqFMPSCtcapPzEyGasFmcpy9BpqRu3tslZwpi.x3hClF2oxRhTgpQ9STIhtUJG6lCFZWm15.n SKovNy4Obbl.7W0ZQWyKaoo1kJ8FkRM7Dn8g3rnauEHNv9RteCaI1LCvUD4pjP_j26bGwPEqb0OO Ykv84IyDuTfXSm00Facj6DpgjLRlTRIuPIaJwmRlYS9rCABXYWs7e0.SVKAvUg_9axtVyOuMGT3y DEg42oc9qZORZjXw0y2daUbEkHYaa2V8kCeKEHYVd7HNfc5h.Wn7OIWJLbuFOo8lQkPLQjS9pD4S iJOIXhhJgSWRCdzwRuQv7KEgWikTy821FGplcZvyKEhTf_IJicf8CYrL8nf7OUHLrT2LP2Wx8dWS V0iwEYa_XEZUJOgrcv3D91inzQz7tLys830E5MKjrWNctZa219YA9AbubOlF.GcAOg7I4ksZyPYJ E9v01nvyLbXX4X0rUe2zhFX.b2cY9ofqH0bE18suI.CzinjyEFFGG3p4OIN2QPyEshWJJeLswH76 .rIui207T9vtguak102OxroR99ehNNjsaf6kPJ1rnrXkrmCEeoliegB2Qt2F2qdrensFTzcPV5sI .eykprPjYKjRyBVNoris2SDyLvSi53jzUKsNGi8JnB0nSaR4Nh958dvDkdxcqbMGWdMjXr4Lvk9s Fs9CBE1sIN1zvQAA7fhwtzv344MG74HWg9x0iw.OD9fFvfNlHY8Y7mQccBRTiuB47uN6b7XghQKB bTRw_OBYPgt0JcwkyV1DcrUmG8ZoImeS0tvEfQScfAXFry8f1cb5cPw1C8iui1alS034xc6FhKGC z6xK3jPcXFZ6dubqh4rOsldcMFuaAlEZj4sruZUhZarLlxmOTD_oUzKtqdvvVnsHA9RUpeHszxQ9 qAZqSUx.2yrTYbAtJvkeWUadB0khaeZTOZD8D.djElS4fbLQ7mykcn_HfR5QvSVsNFjWJ5Kq86Oi q8xZ.AFlI8kjfaqorSTrg1YczIWjjdt2oKQNrOwV4o_ZsDNeUUFOq6nNs9iGH2iaJufL01y3jaU3 ClcKHPY3Fk13tTKGgs0_dm5N1.r8d7XaPJq9ttdSd7gwVaLNtq3CgZSpD5onGmy1FBGiwyIG9BEK 1DTJoW3EFeAJBmlndmsVqj5yx.02YPcf0VoEu5n0z9f0dHPA_yytlBMSgm7jjkJMVbMVTFPC_TqX 9NR.n130K5B5MUcmCAZdUsZtMC__iE8auQvePRPNLyLZiJl5h_Lbvd1TO0QXByOpLb7NHhdOLnHt uZutyeqmp0sfw02AMf4RA.4wLsU.lzYWtqgAwhjIim9aA0JP2QVemTyjWhU5V01E9tNuGvVXciW3 uf2dBjj_9p0g2qgKT3qMvdWXruCJ88FRkc2aA4jjm.t9i8muYNzyxyG1zhjre6XZbK_iBd_Qbb7V pt.6QDp0_pjiOB1BrnyERj3jf0Xy0pCpF_1Mpp9IzCqjAiOKBPs2ZnJ4ncEUtp2bqVp6406Cu91Q 4vw8m9L0sUe98uQFKDr6oORM1CneuZVdJLGZgVGBoI9sh0iYnTvW_LTeQfHOcTf.e5TU7W9zNw9f svTiw9eUT00qTvXI5BE_96d5AIDbvYYCp_eFDFj9xuKYU1dCvdSzxFxkyeEr3ioc2VC_29f2iHuX XtO4bdd.swTv9FONUhw2J5Q2GKfDxI5NOehhDRYUGzVQ7qT6EKEULQOAxRE0FhUSR7E23uRHjvfr xGp5a1BBylqitePra5diiybptpEH3WkOUMkYKNWUQWWxncU5NX6z9DiU52nKyxyMlvtgrk6Q.v7J SQW1HsIH6ekm2_getUl5Mzipqdwjf1RG8mPj6.d38F8XyDsXNAtExefRWD5mPwJODnWW6P3txXla O1sGUB8lvx1waX4aHvBVy1f7BBCQnxumjPcVsT6c57ewUUUV2ETAF.YO96UITvn.6HgGJzXtotLZ BxOfjrSXiQYcKWfFv3UE7QQjflYUEjZ4Codg2 X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic305.consmr.mail.ir2.yahoo.com with HTTP; Sun, 15 May 2022 14:16:04 +0000 Received: by hermes--canary-production-ir2-695448f88c-ksb2v (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 98ad6d6cce8f8a2b4d7917b331551566; Sun, 15 May 2022 14:15:58 +0000 (UTC) From: =?utf-8?Q?Daniel_Mart=C3=ADn?= To: bug-gnu-emacs@gnu.org Subject: [feature/tree-sitter] Simplify the parser creation API Date: Sun, 15 May 2022 16:15:57 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain References: X-Mailer: WebService/1.1.20188 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 991 Received-SPF: pass client-ip=77.238.177.82; envelope-from=mardani29@yahoo.es; helo=sonic305-20.consmr.mail.ir2.yahoo.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Currently, there are three functions to create a tree-sitter parser: - treesit-get-parser-create - treesit-get-parser - treesit-parser-create I think this set of similarly named functions can be reduced, so that developers don't need to remember a lot of APIs. How I understand the problem of creating a tree-sitter parser is that we need three things from the developer: - A programming language (a symbol). - A buffer (optional, default to the current buffer). - Whether to create or reuse an existing parser for that language. I think it would be simpler to have just one parser creation API like (treesit-make-parser LANGUAGE &optional BUFFER ALWAYS-NEW) There are similar API patterns like this one already in Emacs. With this proposed API, the common case, which is to create a parser for the current buffer, and to try to reuse one if it already exists, is very simple from the POV of an ELisp developer integrating with tree-sitter: (treesit-make-parser 'c) Any thoughts? From debbugs-submit-bounces@debbugs.gnu.org Sun May 15 10:26:31 2022 Received: (at 55428) by debbugs.gnu.org; 15 May 2022 14:26:31 +0000 Received: from localhost ([127.0.0.1]:50375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqFCZ-0006Y1-ER for submit@debbugs.gnu.org; Sun, 15 May 2022 10:26:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqFCX-0006Xl-Qm for 55428@debbugs.gnu.org; Sun, 15 May 2022 10:26:30 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47936) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nqFCS-0005bp-JQ; Sun, 15 May 2022 10:26:24 -0400 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=UKy7eeV+mBNp0+diUdSIdMYWMk3/Nvflm98w/C9CAog=; b=GXQ63VI/S71jaku+J6yn e4IMPsqCVujLcaFJucT4YPzy5J6y83KF24HLvfiJ7Q4tQFjb9UpCAzBJak5U4zRu6z6wknsSNqFfP NxtIxDn2c890rdGFO/wiwvDxS+q/E7KLfkuJhZeSp1VzUSmr3mxF37CdWaWdGy/BjLf5TmI4RxEf7 At1vxTFugxeAcyPGBj5EkyatJ+fcNGpnERybZ1YUOb8TzYqpuS5vUAlFeZCCPpmw4DsOm8qBtHJE+ M4pE1BWluVztnz9K48yQhuRDpkDiA15dDPUaTZq/JfXPWY6JmJlAChjlvli2Q+vAnS5ho5uP/5qez ZYU/JdSE9vf0JQ==; Received: from [87.69.77.57] (port=3882 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 1nqFCR-0005kg-WC; Sun, 15 May 2022 10:26:24 -0400 Date: Sun, 15 May 2022 17:26:11 +0300 Message-Id: <83h75qkh31.fsf@gnu.org> From: Eli Zaretskii To: Daniel =?utf-8?Q?Mart=C3=ADn?= In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#55428: [feature/tree-sitter] Simplify the parser creation API References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55428 Cc: 55428@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sun, 15 May 2022 16:15:57 +0200 > From: Daniel Martín via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > > Currently, there are three functions to create a tree-sitter parser: > > - treesit-get-parser-create > - treesit-get-parser > - treesit-parser-create > > I think this set of similarly named functions can be reduced, so that > developers don't need to remember a lot of APIs. How I understand the > problem of creating a tree-sitter parser is that we need three things > from the developer: > > - A programming language (a symbol). > - A buffer (optional, default to the current buffer). > - Whether to create or reuse an existing parser for that language. > > I think it would be simpler to have just one parser creation API like > > (treesit-make-parser LANGUAGE &optional BUFFER ALWAYS-NEW) I suggest that discussions about the API be held on emacs-devel, not hear. That way, more people will see them and could decide whether to participate. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 17 05:41:15 2022 Received: (at control) by debbugs.gnu.org; 17 Jun 2022 09:41:15 +0000 Received: from localhost ([127.0.0.1]:43770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o28Tb-0008WC-6P for submit@debbugs.gnu.org; Fri, 17 Jun 2022 05:41:15 -0400 Received: from mail-pf1-f176.google.com ([209.85.210.176]:38814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o28TZ-0008Vx-Qi for control@debbugs.gnu.org; Fri, 17 Jun 2022 05:41:14 -0400 Received: by mail-pf1-f176.google.com with SMTP id e11so3731947pfj.5 for ; Fri, 17 Jun 2022 02:41:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=JBetJLi9GXgV+FwoqB9ZPEa0julZk2m+oRqvq6EljZY=; b=oChu2s1+1GgnvohzF2aiRyoVZrrwkRZyXMYLaYJFBgYq8TJLZlp37IMgopMVI1PDjC zC8HVZbZqZsOJuqeTc4hJc/BZRRzAWzC5o7P5Ay9iQm3+WsWYP6U53plgbcECiHQ8JK8 52RPrG/HXMHYO1Gpsj12nvi/oRgzPN5r3uKJ9T4bF049qQdI7KJ/v7MbS+XBuZnRkakc yaCT9DBq4le9DucQhb6iwhtf45bjxMIDGFpEkPp1xtoQ9f09NLO6GGRbGYczJv0hC5GV bZYXYF3mhy3JPpZ4FcmplElFZEfwhvYQy/fdKiIa2ISV3Uao2pJTmRo+Lr09gn5eI3ab He1w== X-Gm-Message-State: AJIora+2t2CGLJoLdb2et+CuR26KT+gSJyQ7+mmQyS6HjZPVZpXUsUXS UHIoOuxMj3fqzTJ11flQf10PzEPGHhgtk8k9phcMw5CL X-Google-Smtp-Source: AGRyM1u/ywuPHBdxwme6rnbzSXJpo8g8T5gzIYdEamPhkiuHP7PtG7+sv2cLg7yBfERiSJcx89u/m67tD21K9VCqHEg= X-Received: by 2002:a63:9dc9:0:b0:408:dcec:d291 with SMTP id i192-20020a639dc9000000b00408dcecd291mr8353737pgd.592.1655458868138; Fri, 17 Jun 2022 02:41:08 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 17 Jun 2022 02:41:07 -0700 From: Stefan Kangas MIME-Version: 1.0 Date: Fri, 17 Jun 2022 02:41:07 -0700 Message-ID: Subject: control message for bug #55428 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) severity 55428 wishlist quit