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: Turning on/off tree-sitter modes Date: Sun, 24 Nov 2024 10:28:45 -0500 Message-ID: References: <86ttc2rrh8.fsf@gnu.org> <86cyipsp94.fsf@gnu.org> <9cd17f8b-f88c-49f6-9024-0b6d297e18ac@gutov.dev> <867c8xsmri.fsf@gnu.org> <566ac897-ea5e-4141-bcb3-306d43c9118a@gutov.dev> <865xohrvfa.fsf@gnu.org> <86wmgwnyle.fsf@gnu.org> <178dfc7f-bc2d-4e3b-8417-a616ccc0eef3@gutov.dev> <86v7wgnxlz.fsf@gnu.org> <01d83ec8-c02b-4806-8764-38dc89a89125@gutov.dev> <86ttbzojho.fsf@gnu.org> <930f5c8e-1481-43a5-8f1d-2c13a98df74f@gutov.dev> <86r072krq5.fsf@gnu.org> <8b907a41-aa08-4b61-bced-7d4d3fcef4b2@gutov.dev> <87frnhsvp3.fsf@mail.linkov.net> <865xodlr7t.fsf@gnu.org> <874j3xoiu8.fsf@mail.linkov.net> 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="30164"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Juri Linkov , Eli Zaretskii , johan.myreen@gmail.com, emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Nov 24 16:29:47 2024 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 1tFEYT-0007aA-R6 for ged-emacs-devel@m.gmane-mx.org; Sun, 24 Nov 2024 16:29:45 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tFEXe-000310-D1; Sun, 24 Nov 2024 10:28:54 -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 1tFEXc-00030p-Oc for emacs-devel@gnu.org; Sun, 24 Nov 2024 10:28:52 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tFEXa-00025E-LR; Sun, 24 Nov 2024 10:28:52 -0500 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 3E1B080788; Sun, 24 Nov 2024 10:28:48 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1732462127; bh=1bgb3Qa0pWaQvRLpSK39YvTD6GEIgosMSZuogxMPZf4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=aw+e8ElsdrNjfN5yUBr7XRG1Srlg2nxOLpdQcC9UKIu8xsrULYG0LLQcSSnA71K0U TOx48YwDvLemTfLZMRlKdahhCOm07jy6fRU0U53iBgUTBeYeF/4yn9SIEFVsGM457t 8dXwB5goVnAMzeJYE3lNtSSlm+JqiIfnBXj5bcDeOcYf0Z1DcOJU9q/cDfiw7b7lIl 5I35Tt0IReeNs7azJTMbSPLLCv4GCJmMCHOb4FP5nXRGpP0fFX58OgsgiuT78OczXE doaDO6JdYSdNy0R2+OaNfRihOcHhTN4J4jMVrm7famwDWua6C4Iaz3vcRRD9uhZ+aN 5UU6BAVVn9IeA== Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 2C38F803A3; Sun, 24 Nov 2024 10:28:47 -0500 (EST) Original-Received: from pastel (104-195-225-43.cpe.teksavvy.com [104.195.225.43]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E384B120313; Sun, 24 Nov 2024 10:28:46 -0500 (EST) In-Reply-To: (Dmitry Gutov's message of "Sun, 24 Nov 2024 04:21:43 +0200") 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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:325667 Archived-At: >>>> Recently Philip rightly noticed that 'major-mode-remap-alist' >>>> would be sufficient. And indeed, such a command could be implemented >>>> just as >>>> >>>> (defun treesit-add-enabled-mode (non-ts-mode ts-mode) >>>> (setopt major-mode-remap-alist >>>> (cons (cons non-ts-mode ts-mode) >>>> major-mode-remap-alist))) >>> But is it okay to have a command modify a user option? Yes, it's very much appropriate. >>> Do we have examples of this anywhere else? This happens for example in the Custom UI. =F0=9F=99=82 It also happens in `package--save-selected-packages`. And if you search for `customize-mark-as-set` you'll find other examples, most notably all global minor modes. It usually requires checking `called-interactively` to distinguish the case where it's "modified outside customize", which really is about making sure that the same change won't happen behind Custom's back next time we start Emacs (thus interfering with Custom's way to save&restore the settings). > Not 100% sure though - because that plan would delete the vast majority of > the uses of the latter from the core (except for TeX's mappings, it seems= ). That sounds good to me. All the modifications of `major-mode-remap-defaults` that happen when we *load* a package should be removed as soon as possible. We could keep such modifications a bit longer by moving them to the major mode's initialization function, which should be much less problematic, but fundamentally they should also go the way of the dodo. The only cases where setting `major-mode-remap-defaults` makes sense, IMO, is for cases like TeX where we have a major mode that's builtin as well as one that's not, so the var can be set according to whether the user installed the external package or not. Stefan