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: Tue, 18 Oct 2022 16:49:03 -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> <6A0F847F-910D-449B-B461-466493CC9847@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="3164"; 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 Tue Oct 18 22:58:23 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 1oktfK-0000d1-Ox for ged-emacs-devel@m.gmane-mx.org; Tue, 18 Oct 2022 22:58:22 +0200 Original-Received: from localhost ([::1]:37822 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oktfJ-00040e-IQ for ged-emacs-devel@m.gmane-mx.org; Tue, 18 Oct 2022 16:58:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56292) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oktWU-0004zJ-Ns for emacs-devel@gnu.org; Tue, 18 Oct 2022 16:49:19 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:64480) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oktWQ-00019p-Ms for emacs-devel@gnu.org; Tue, 18 Oct 2022 16:49:13 -0400 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 096A24428EF; Tue, 18 Oct 2022 16:49:09 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 8134E4428EB; Tue, 18 Oct 2022 16:49:07 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1666126147; bh=cSXa+OgpYWxagbnduGYU8VOROiJOqQed4XIE4NX7bww=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=RLuejq1l7lR0LqwffU2yzrBNKOv7w5qk5nY7AVcUbJcB6CKjYqsEevY5RnSDrWynP uVcZloQblgYVWEz7CbkVkwFUf1iRo6Qo+Q08pB+EdogBEGrVXrm56beQIWEMBOOmFP KrbDxSfMoOfUtg0mQkdZeT15OLYkvVv1e9CkLKn1qCGRHRlE5u+qN0+3OFNkoPRR8U 3zkzyva9xhV+ILAl3dwrDy7NZ+EhnoqkuovAXblq4+BgMRq02ljatvmU/n6ewiMIKp Gdln/kKPA3Of+E87ZWR2SU4ZmgBQSzFVKs5CgQoiDfngr0k3USbK9X6rRTW5k8v7FS h/qVIjvOSHsHQ== Original-Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 6B7711202AD; Tue, 18 Oct 2022 16:49:07 -0400 (EDT) In-Reply-To: <6A0F847F-910D-449B-B461-466493CC9847@gmail.com> (Yuan Fu's message of "Fri, 14 Oct 2022 22:05: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:298078 Archived-At: > How about a function mode-specific-value that takes any variable with the= following shape: > > ((MODE VALUE INHERIT)=E2=80=A6) > > And returns the right VALUE for the current mode? INHERIT decides > whether VALUE is inherited by MODE=E2=80=99s derived modes. FWIW, `inherit` should be the default, IMO, so the third part should specify DONT-INHERIT. > This function would handle derived mode ok, but I don=E2=80=99t know what= are > the other problems you are think of, maybe you can tell me what this > function falls short for. And we can go from there. The function is one thing. Another question is when it is run, and hence how it interacts with other ways to enable/set/control the thing you want to control (in this case enabling `treesit-mode`, IIUC). I recommend you focus on making the `treesit-mode` minor mode work regardless when it's called. So it can be controlled by the usual (add-hook foo-mode-hook #'treesit-mode). Then we can worry about how `global-treesit-mode` should be controlled (and worry about harmonizing it with `global-font-lock-mode`, for example, which relies on `font-lock-global-modes` which is also such a centralized way to specify the behavior per-mode (and a poor one at that if you ask me)). Stefan