From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Theodor Thornhill Newsgroups: gmane.emacs.devel Subject: Re: Suggesting that feature/tree-sitter be merged (was Re: Tree-sitter and major mode inheritance) Date: Sat, 19 Nov 2022 12:49:55 +0100 Message-ID: <87edtztb8c.fsf@thornhill.no> References: <0249C656-21C8-49F2-B979-A1894BF80637@gmail.com> <6DDC3B43-8B34-41A8-9BCA-77EEAD0EB124@gmail.com> <8335af9xi7.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="19063"; mail-complaints-to="usenet@ciao.gmane.io" Cc: casouri@gmail.com, jostein@kjonigsen.net, emacs-devel@gnu.org To: Stefan Kangas , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Nov 19 12:50:42 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 1owMMr-0004jY-Rr for ged-emacs-devel@m.gmane-mx.org; Sat, 19 Nov 2022 12:50:42 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1owMMP-0007pW-PZ; Sat, 19 Nov 2022 06:50:14 -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 1owMMJ-0007ms-4e for emacs-devel@gnu.org; Sat, 19 Nov 2022 06:50:08 -0500 Original-Received: from out2.migadu.com ([2001:41d0:2:aacc::]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1owMMG-0005IN-SS; Sat, 19 Nov 2022 06:50:06 -0500 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no; s=key1; t=1668858601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=MlKDyPH2c76Dc9069RwN+PPfqU/emzEAyP/mg82oj3o=; b=QsNVMDnZZjLBAd/VkqikSR+i5FwVRI5idEeZY9Z4X2SyPYbQV8LA+I6qV7HPMSfvU3TRjK 0hu33lxb3JuD9T6ykRdtsEmjEFxZXVf6QC2jxUn3CgLK9TvcGeQSLEt0k3EWKpvCctGCt9 6Dz+CXRNVt7LL5Emc4B0orzZf16uG9/xvm5NcYl1W6VHLuY0DqieJltQkztTnolEcRWVTV oyikB+1Q72XudTaVQdIXjJ1LHhI5tkJpJo/ATxy12cetu+tRL5KZuQBZmwA+a8ce1ZaxxI +eGxx1ccJ0R6r9ke0j7Eq5BAO99QstYnbc2l896xZT4b/ACj374BYny10BABng== In-Reply-To: X-Migadu-Flow: FLOW_OUT Received-SPF: pass client-ip=2001:41d0:2:aacc::; envelope-from=theo@thornhill.no; helo=out2.migadu.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-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:300161 Archived-At: Stefan Kangas writes: > Eli Zaretskii writes: > >> The intent is for Emacs 29 to include several modes based on >> tree-sitter, and several others to have optional features based on >> tree-sitter. Based on the state of the soon-to-be-merged branch, I >> see no reason to declare its support as experimental. > > My comment was more general, as IIUC we are still seeing quite a bit of > movement even in the low-level fundamentals on that branch, as recently > as the last week or two. But if you and others are happy to declare our > tree-sitter support stable, so much the better. Only one of the modes is auto-enabled, and that one is because it is missing support altogether natively in Emacs. The others are second-class to their older counterparts, and likely will be for years to come. My personal suggestion is to just keep them separate, as interested parties will find and enable these anyways. If at some point tree-sitter is so ubiquitous that it being second class doesn't make sense anymore we can make it the default. That's why I don't think we need to make it experimental: people that will be early adopters will likely compile emacs from master and get improvements incrementally, though they should be usable enough for others to use, should a package manager provide the integration within the stable Emacs 29 package. I agree with Eli in that providing only the api and "glue-code" would guarantee that people will just create their own, external variants that'll be hard to remove should we provide our own down the line.