From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Theodor Thornhill via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#59763: 29.0.60; Filling for c-ts-mode Date: Tue, 27 Dec 2022 00:00:42 +0100 Message-ID: <87r0wlg485.fsf@thornhill.no> References: <87zgb9g6vb.fsf@thornhill.no> Reply-To: Theodor Thornhill 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="19445"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , 59763@debbugs.gnu.org To: Yuan Fu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Dec 27 00:01:35 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1p9wTO-0004sK-Py for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 27 Dec 2022 00:01:35 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p9wSv-0005pV-Aq; Mon, 26 Dec 2022 18:01:05 -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 1p9wSs-0005oR-KD for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2022 18:01:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p9wSs-0003JY-Bh for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2022 18:01:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p9wSs-0005Eg-1j for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2022 18:01:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Theodor Thornhill Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 26 Dec 2022 23:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59763 X-GNU-PR-Package: emacs Original-Received: via spool by 59763-submit@debbugs.gnu.org id=B59763.167209564720098 (code B ref 59763); Mon, 26 Dec 2022 23:01:02 +0000 Original-Received: (at 59763) by debbugs.gnu.org; 26 Dec 2022 23:00:47 +0000 Original-Received: from localhost ([127.0.0.1]:54329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9wSd-0005E6-A3 for submit@debbugs.gnu.org; Mon, 26 Dec 2022 18:00:47 -0500 Original-Received: from out2.migadu.com ([188.165.223.204]:28762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9wSb-0005Dw-Cp for 59763@debbugs.gnu.org; Mon, 26 Dec 2022 18:00:45 -0500 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no; s=key1; t=1672095643; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wDDWA28agI1wcLEtjztUCUadeSfP05Q3As5OErtmA8w=; b=y3HYLTqtr+SEXSdEuViePsW9ZmPyPDsXplyWIhaOUFwSHq9KtH0DLYzLe0Cw+OD8BUcWbL izDMylorE4y3UPz1N+LlcxOt4FkBkqX1lw0Gal8u43q0mqb5zPEEL9DTwdoHf19RXUYRx0 KLF3oGkqmbiOIZXjggkSD93ZOUeQkk06BoySXs0rTScevhqaRGZBmTjpxc6zNl/TYwESf3 5uyNu3hhgPK0AfyZEzD+FxB1Jakzml9JrJt0asSdwOWrntme3CtWjIYM5oPvTEzXyiYr26 KvObhhp2y7YgpiWqdUv4NJdm1qLWruD+KYZeqdHoi6/ebM3kc+D83bLIvcQaHQ== In-Reply-To: X-Migadu-Flow: FLOW_OUT X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:251924 Archived-At: Yuan Fu writes: >> On Dec 26, 2022, at 2:03 PM, Theodor Thornhill wrote: >>=20 >> Yuan Fu writes: >>=20 >>> Theodor Thornhill writes: >>>=20 >>>> On 25 December 2022 02:30:35 CET, Yuan Fu wrote: >>>>>=20 >>>>> Theodor Thornhill writes: >>>>>=20 >>>>>> On 24 December 2022 09:36:21 CET, Yuan Fu wrote: >>>>>>>=20 >>>>>>> Theodor Thornhill writes: >>>>>>>=20 >>>>>>>> Yuan Fu writes: >>>>>>>>=20 >>>>>>>>>> On Dec 2, 2022, at 6:58 AM, Eli Zaretskii wrote: >>>>>>>>>>=20 >>>>>>>>>>> From: Yuan Fu >>>>>>>>>>> Date: Thu, 1 Dec 2022 21:33:06 -0800 >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>> IMO For c-ts-mode to be usable we need to have at least a basic= filling >>>>>>>>>>> function. Below is the function I have in my init.el, could som= eone have >>>>>>>>>>> a look and see if it=E2=80=99s good? Alternatively we could cop= y out the comment >>>>>>>>>>> and fill it in a temp buffer with c-mode, but I didn=E2=80=99t = have the time to try >>>>>>>>>>> it out and see how well it works. >>>>>>>>>>=20 >>>>>>>>>> Thanks. >>>>>>>>>>=20 >>>>>>>>>> From quick testing, I see a problem: >>>>>>>>>>=20 >>>>>>>>>> . Visit dispnew.c and go to the comment that starts on line 324.= Delete >>>>>>>>>> the newline between the two lines of the comment, and invoke t= he >>>>>>>>>> function. Observe how the first non-blank character of the co= mment's >>>>>>>>>> second line is aligned with the "/*" on the previous line, not= with the >>>>>>>>>> text after "/*" as I'd expect. >>>>>>>>>=20 >>>>>>>>> I see. I=E2=80=99ll need to look at how cc-mode fill comments. >>>>>>>>>=20 >>>>>>>>>>=20 >>>>>>>>>> Btw, this command should be bound to M-q in ts-c-mode. >>>>>>>>>=20 >>>>>>>>> Will do, once our fill function works well. BTW, Theo, if you hav= e any >>>>>>>>> idea, don=E2=80=99t hesitate to go ahead :-) No obligations, of c= ourse. >>>>>>>>>=20 >>>>>>>>> Yuan >>>>>>>>=20 >>>>>>>> Sure! Added to my list :) I had a function at some point that us= ed >>>>>>>> c-mode to do this. I'll see if I can polish it a little. >>>>>>>=20 >>>>>>> I did some work in filling, it should work like cc-mode in like 90%= of >>>>>>> the cases now, yay! >>>>>>>=20 >>>>>>> Yuan >>>>>>=20 >>>>>> Nice! For all cc-ts-modes? >>>>>=20 >>>>> I only added for c and c++, but support for other modes should be >>>>> identical. And I think we should have something equivalent to cc-mode= =E2=80=99s >>>>> init which sets up things that are the same in all C-like languages, >>>>> basically comments and filling. >>>=20 >>> I added indent and filling for other C-like modes. >>>=20 >>>>> But I wonder where should we put it, I guess it=E2=80=99s fine to lea= ve it in >>>>> c-ts-mode, since there really isn=E2=80=99t much code. Having other m= odes to >>>>> require c-ts-mode shouldn=E2=80=99t be a big problem, I think? >>>>>=20 >>>>> Yuan >>>>=20 >>>> How about just having treesit-utils.el, or something like that? There >>>> are probably many things in the future that will be common among >>>> modes, yet won't really warrant inheritance. I think we have such an >>>> example in js/typescript too, iirc. >>>=20 >>> If it=E2=80=99s shared across all tree-sitter modes, it should be in tr= eesit.el, >>> of course. We are talking about things shared by tree-sitter C-like >>> modes, so the scope is smaller. >>>=20 >>> Since right now it=E2=80=99s only a handful functions, I made other mod= es >>> require c-ts-mode.el. In the future if things accumulate, we can put >>> things into a separate file (c-ts-mode-common.el or something). >>>=20 >>=20 >> Sure. I just don't like it when these namespaces blend too much. But >> your call :-) > > It can be treesit-c-common.el or something. We=E2=80=99ll figure it out w= hen the time comes ;-) > Yep :) Theo