From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Turning on/off tree-sitter modes Date: Thu, 28 Nov 2024 21:51:16 +0200 Message-ID: <42e82dcc-79ed-4cf1-8278-ac1a10a9f673@gutov.dev> References: <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> <0d1e2770-0889-4862-8105-8a5f4631b11c@gutov.dev> <87ed31gku5.fsf@mail.linkov.net> <86plmljbsm.fsf@gnu.org> <8734jgftif.fsf@mail.linkov.net> <86ttbwihp6.fsf@gnu.org> <4f8f8b97-6650-4a6f-b121-82964fec49cf@gutov.dev> <86o723ikga.fsf@gnu.org> <41e2710f-d612-40e2-9037-d8d388c5edc7@gutov.dev> <86ldx6gjai.fsf@gnu.org> <878qt588qb.fsf@mail.linkov.net> <277bed39-bad3-4464-8ca8-506428a5ba2e@gutov.dev> <878qt36a69.fsf@mail.linkov.net> <771f99be-efb9-44b2-9f3a-726336f25889@gutov.dev> <87r06vw3th.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3921"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: Eli Zaretskii , johan.myreen@gmail.com, emacs-devel@gnu.org To: Juri Linkov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Nov 28 20:51:56 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 1tGkYN-0000on-K3 for ged-emacs-devel@m.gmane-mx.org; Thu, 28 Nov 2024 20:51:56 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tGkXv-00060X-CI; Thu, 28 Nov 2024 14:51:27 -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 1tGkXs-000608-DC for emacs-devel@gnu.org; Thu, 28 Nov 2024 14:51:24 -0500 Original-Received: from fout-b6-smtp.messagingengine.com ([202.12.124.149]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tGkXq-0007Zr-9W; Thu, 28 Nov 2024 14:51:24 -0500 Original-Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfout.stl.internal (Postfix) with ESMTP id AF2EC11400D6; Thu, 28 Nov 2024 14:51:20 -0500 (EST) Original-Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Thu, 28 Nov 2024 14:51:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1732823480; x=1732909880; bh=BL7dj/Ihi/wu/Pu1S6/ogev6/u5RacFWgk39hEWkuiY=; b= KivXfQqSzv5u79EdFjZdcRVzFMaDwZUU5NtC2YtA66fjxUl4o7hIzx1QNIE8L5aB I2hjoJCczCxZ/0fnnPUSNSzIR6hF6b3XO/3YuDX4HjgVqeZ8ePO3GJSQipuV4Nlj NEKyV/hPIq05+PkvrwcT0YRY1qf+QvW9Jw/UlSGllWMJcm+5zhr3jOpv/BMRQS0f Du8uWXQrYbPezPdDhyycJe+fk7weJn186AoI4Gk6xPzFbF501/No5Co9o1jCGJy+ OtrMsM4fu5GJJzfbIRMhDhcSg9c85uYScIyfk83IoR+AmtgHb7vBfIUcdn7c4Ggm kqHmnSwQ6hIC8DiPpjE0cA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1732823480; x= 1732909880; bh=BL7dj/Ihi/wu/Pu1S6/ogev6/u5RacFWgk39hEWkuiY=; b=Q ll1LlrjaRbO1vV/4iCgXhE7xSy2qdI603/tIAKxO3sBV4yxeySsluUV3+zgeEfbb lVZsUnQwInVwqjqkknsfcY91+LT/X1I4BGTbCBe5itlUzOfPA0kn7r1vloob7XOG cMSsgVmNTP7Qkq/QkAwRiPJ9yOh+hDrJQzge9YFXO/1p1/m3iWGvgsS1D4DKrexv d1YACekaABZtJ7t3k5qMUnCTcNH7NTxsFZa/Y3p6mY+W00NjYOda1sCOEJVx1HsG okYXH9BL0yXbtrIwKEfsPXXOZRQ3AkZzlhZNa/beVCb8RLO9YcUBreJJ6WqKivzF BK3iERFHlRFSmt0IVcrRw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrhedugdduvdejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug gvvheqnecuggftrfgrthhtvghrnhepteduleejgeehtefgheegjeekueehvdevieekueef tddvtdevfefhvdevgedujeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpdhnsggprhgtphhtthho peegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjuhhriheslhhinhhkohhvrd hnvghtpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghpthhtohepjhhohhgr nhdrmhihrhgvvghnsehgmhgrihhlrdgtohhmpdhrtghpthhtohepvghmrggtshdquggvvh gvlhesghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i07de48aa:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 28 Nov 2024 14:51:18 -0500 (EST) Content-Language: en-US In-Reply-To: <87r06vw3th.fsf@mail.linkov.net> Received-SPF: pass client-ip=202.12.124.149; envelope-from=dmitry@gutov.dev; helo=fout-b6-smtp.messagingengine.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 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:325833 Archived-At: On 28/11/2024 21:34, Juri Linkov wrote: >>>>>> Major Mode Remap Alist: >>>>>> List of remappings: >>>>>> INS DEL >>>>>> Remap from major mode: js-mode >>>>>> To mode (or function): js-ts-mode >>>>> Here mode names are nicely aligned, >>>>> so it's easier to read for users. >>>> >>> - :offset 12 >>> + :offset 9 >> >> Maybe 10? With 9, it still doesn't line up on my display (the buttons' >> margins drive the offset), but hangs over for like 0.5 character width. >> >> With 10, the result look more intentional, though I'm not sure if the >> original plan (in Emacs 25?) was to have a different indentation or not. > > And can't be aligned with proportional fonts anyway. Technically it could be done using pixelwise space specs, (info "(elisp) Specified Space"), but it might be not obvious how to define that behavior through widget specs first. > There is even a wishlist item in wid-edit.el: > > ;; * Make indentation work with glyphs and proportional fonts. > >>> + :options '((js-mode (function :value js-ts-mode)) >>> + (ruby-mode (function :value ruby-ts-mode))) >> >> This :options hunk is a nice illustration, but if it's a serious proposal >> I wonder which set of modes would be appropriate to have here. All or most >> ts modes? > > Probably the list of all ts-modes would be too long. > I can count 28 ts-modes in Emacs core. Could we decide on a smaller subset? >> Note we still won't be able to cover all tree-sitter modes this way because >> a large part of them doesn't have any corresponding "traditional" modes and >> so no existing auto-mode-alist entries. > > Such ts-modes can be associated with a non-ts placeholder > like this wishlist item in lisp/progmodes/go-ts-mode.el: > > ;; FIXME: Should we instead put `go-mode' in `auto-mode-alist' > ;; and then use `major-mode-remap-defaults' to map it to `go-ts-mode'? > (add-to-list 'auto-mode-alist '("\\.go\\'" . go-ts-mode)) I guess if we're okay with "Ignoring unknown mode" errors and prefer them over "Cannot activate tree-sitter" errors, which are admittedly more verbose.