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: Average-user-facing interface for tree-sitter Date: Fri, 14 Oct 2022 23:26:46 -0400 Message-ID: References: <3A7E7CD1-74A7-4352-9DFE-FC982EAA398E@gmail.com> <87ilko9r9e.fsf@gnus.org> <9794E2EF-4DB5-4A04-90F0-3EB51E6BE008@gmail.com> <87977C2D-844B-4F4E-BEA4-8BCBFC8AE354@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16906"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Lars Ingebrigtsen , emacs-devel To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Oct 15 05:27:53 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 1ojXq4-0004C0-2F for ged-emacs-devel@m.gmane-mx.org; Sat, 15 Oct 2022 05:27:52 +0200 Original-Received: from localhost ([::1]:44570 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ojXq3-0006Ma-0M for ged-emacs-devel@m.gmane-mx.org; Fri, 14 Oct 2022 23:27:51 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39726) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ojXp7-0005g9-P5 for emacs-devel@gnu.org; Fri, 14 Oct 2022 23:26:53 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:1042) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ojXp5-00037x-QT for emacs-devel@gnu.org; Fri, 14 Oct 2022 23:26:53 -0400 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id E1C09807C3; Fri, 14 Oct 2022 23:26:49 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 5C2D18004C; Fri, 14 Oct 2022 23:26:48 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1665804408; bh=HZtrqhX59NarYFt90c/GkSP061ml8uaHRnDo6PBgbjM=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=dKNa8C0ARuX9o2vzEmNm6RoG+EyhWIuz3Itu0R1FmWGTA1vjgtLP6zWfZKU8G9gBb nkqNsbRJ5Cq87J0BVVIt84RImsMDkMc0i0Lm1Nv571nlHJWSYb90BWLZHQr+ku3jTf t1Q/SOow+C26EzpJSIStxP0GDR18Tld+cMmTYGaAXZcqQDd5psPeN233B03zpMdQIG LvfRPOo6LcCDvcD8IRD0ftyPtANnTZn9h3EXN0BTjUi072PI0S9E0E17OtIjRBweKb iYeLU0g2b/5tv1KdmX0n9QEOdUPUpwHxpkqzj+Rd1cvJgCvDDO36cnK/y8JfiT/msi VPg3ypJo5kzRw== Original-Received: from pastel (65-110-220-202.cpe.pppoe.ca [65.110.220.202]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 258FB120D37; Fri, 14 Oct 2022 23:26:48 -0400 (EDT) In-Reply-To: <87977C2D-844B-4F4E-BEA4-8BCBFC8AE354@gmail.com> (Yuan Fu's message of "Fri, 14 Oct 2022 15:51:15 -0700") 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.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" Xref: news.gmane.io gmane.emacs.devel:297747 Archived-At: > (add-hook 'xxx-mode-hook > (lambda () (when (eq major-mode 'xxx-mode) > (treesit-mode)))) > > Which again is a bit awkward. Awkward but possible. Another approach can be: (add-hook 'xxx-mode-hook #'treesit-mode) (add-hook 'yyy-mode-hook (lambda () (treesit-mode -1))) > So maybe a central variable isn=E2=80=99t that bad an idea. Could you la= yout > why mapping modes to some information is bad? Because it needs to be able to say "for this mode and all its derived modes" but also "for this mode only" as well as various combinations, and then you need to document how it interacts with the major mode's hook, ... Maybe we should devise a way to "centrally" control the value of some vars depending on major modes, but if so we should carefully design a thing specifically for that, make sure it's sufficiently flexible, and then use it for several (any?) variable. All the vars I've seen so far which do that do it quite naively, which works OK for simple cases but breaks down one way or another when you start taking derived modes into account. Hence my considering it a code smell (just like most uses of the `major-mode` variable). Stefan