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 09:47:06 +0200 Message-ID: <831qog581x.fsf@gnu.org> References: Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12210"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Pedro Andres Aranda Gutierrez Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 31 08:48:12 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 1pBWbE-0002y9-Cd for ged-emacs-devel@m.gmane-mx.org; Sat, 31 Dec 2022 08:48:12 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pBWaF-00037o-27; Sat, 31 Dec 2022 02:47:11 -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 1pBWaC-00037K-4r for emacs-devel@gnu.org; Sat, 31 Dec 2022 02:47:08 -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 1pBWaB-0005hW-2K; Sat, 31 Dec 2022 02:47:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=hb2mhUhUR1y91NuoH0JS+/daYgNLJeYz6uq6EXGK8g0=; b=KFMWDAYoC5dX ZJtMwuYQRtOva7A8xpk1H//msMW1jnem05mXl2Pe6DOBR72F+weAxdgnzx7PKK74ElErNrpf4paMM EEn5pGDH2orvQCh5SoCkCirGt/rFUBxVDQ15Ur3lp/4AK2cMisxZzO76uyv/Nq30N/J7jmu7RONYf SCrQvvLbTb+ZfARNEfxFYyi97h1d3/W852tlRtXrzNw/F/oVyfYnhzwdgDVqUUoD4UgIvbrH3Qt5K sDku4ZkWJr2biPzumB6rVLpVyu6WvnH2WziFZXJaQo39hvMDS+Tm4wr+TthA6ckN4rEYZqnh5gBSm 2m5UvCeMzSJ1wvW0YwQO5A==; 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 1pBWa9-0005oL-Pb; Sat, 31 Dec 2022 02:47:06 -0500 In-Reply-To: (message from Pedro Andres Aranda Gutierrez on Sat, 31 Dec 2022 07:59:18 +0100) 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:302151 Archived-At: > From: Pedro Andres Aranda Gutierrez > Date: Sat, 31 Dec 2022 07:59:18 +0100 > > Philip Kaludercic writes: > > > My main worry with these changes, along with the popularity of LSP is > > that while they are technological improvements, they all happen at the > > deterioration of Emacs' introspectability, increasing the effort it > > takes for the user to make changes. IIUC you can't reload a .el file or > > just a singular expression if you want to change how completion via > > Eglot or how imenu works via Tree Sitter. A simple hack becomes a > > weekend project. This is not an unconditional good. > > That's a very good point. My .02 cents of experience with eglot/treesit: > > while I'm happy it works now on my multi-OS setup and I can seamlessly switch computers, it took me a lot > of time to understand and duck-duck-go and set up. On top of that, there are some things I still don't > completely understand and can't explore on the *scratch* buffer and/or slime. Using technology that is implemented outside Emacs inevitably means we have less transparency in Emacs itself for the related functionalities. However, hoping that everything can be implemented by the Emacs project, and refusing to use external libraries for some areas for that reason, is an evolutionary dead end for Emacs. So we have to do that to some degree where key technologies applicable to Emacs features are available out there. The job of the maintainers is to identify those technologies, weigh their potential contributions to future Emacs development, and decide whether those contributions justify their use, with all the disadvantages in transparency that will inevitably bring with it. > And yes, I've also tried tree-sitter for Python on my Linux and it makes me wonder what the real gain is, > because I'm using the plain python-mode on the other systems and I can't feel a compelling argument to > switch. Thank you for your feedback. This is the reason we decided to keep these modes separate and make trying the new tree-sitter based modes as easy as possible. This is also the kind of user feedback we will need to collect when Emacs 29 is released, which will help us to decide how to use tree-sitter based capabilities. The decisions could be different for different programming languages.