From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Yuan Fu Newsgroups: gmane.emacs.bugs Subject: bug#59763: 29.0.60; Filling for c-ts-mode Date: Mon, 26 Dec 2022 14:51:08 -0800 Message-ID: References: <87zgb9g6vb.fsf@thornhill.no> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) 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="17569"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , 59763@debbugs.gnu.org To: Theodor Thornhill Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Dec 26 23:52:11 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 1p9wKJ-0004NP-Dm for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 26 Dec 2022 23:52:11 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p9wKC-0003rM-GC; Mon, 26 Dec 2022 17:52:04 -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 1p9wKA-0003r3-UD for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2022 17:52: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 1p9wKA-0000pA-Db for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2022 17:52:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p9wK9-00050l-LV for bug-gnu-emacs@gnu.org; Mon, 26 Dec 2022 17:52:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Yuan Fu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 26 Dec 2022 22:52:01 +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.167209508019210 (code B ref 59763); Mon, 26 Dec 2022 22:52:01 +0000 Original-Received: (at 59763) by debbugs.gnu.org; 26 Dec 2022 22:51:20 +0000 Original-Received: from localhost ([127.0.0.1]:54323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9wJU-0004zm-3r for submit@debbugs.gnu.org; Mon, 26 Dec 2022 17:51:20 -0500 Original-Received: from mail-pl1-f180.google.com ([209.85.214.180]:40787) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p9wJP-0004zV-Hy for 59763@debbugs.gnu.org; Mon, 26 Dec 2022 17:51:18 -0500 Original-Received: by mail-pl1-f180.google.com with SMTP id b2so11691552pld.7 for <59763@debbugs.gnu.org>; Mon, 26 Dec 2022 14:51:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=q7Bj68XZUoMQB9d7LKbY9Gc+3bfSvi+a23u1zrw64JY=; b=T5x8m2OM5Vaz7o0yd2m45yS1BkCtwV4PNMg4sPUVU+8CCf0Q8tj6UIQzbM4+1GgaCP ROlRoMqVFxtmOiUBMNTtv+1JZmKEO0DD/5a0f7VWMdXanVFSWY1uqRlHZzorCSPapvXh 6Y4AxsfnFDhVAdFDsJd0DEG0cJ5i9mTB5PRCgdWHjI1QvHXUodZlSPD4+evbFVj5UTQp hWedHa4US7T/8jDbN09kxofnEC5U7S9E/eLThyrN3E4Nv48egg+n2JxXvksuUnZrEQL/ NWrV8j2eLJvbE4hLQyqY7N3iKe6c9F3WdUL2jvH2rqTsQuxO8qp3Y/94a9fEEs3XPWGV kpTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q7Bj68XZUoMQB9d7LKbY9Gc+3bfSvi+a23u1zrw64JY=; b=qc5MHsH/ZTWjpSdDoeZkQRrk5mBW3+xHwVBgmDS+0Q3aW4r2MMKgTGBQpoj548Krwx lolpyljgVaE1S3uitmZ7wjPD58okkeDN/ipOJFNYF7S+SJZHKKXZ6ruLOwR3o2/xplNC 2Wri4lbKRriJ/tAMpHnY6FIsg2+nwK1IjzaO22Y0Ax+HJTcJi9qI7+Zfuj/8jMt1aLjT yxstgrmbSPXoG2VOpFQzfq64zqL1pFmpSDlW2g97Fu72XKDh9MAziRVLrJi6ZPsF1Cxu 7FJs0k+r1WSjcNzdG+bAmR6uaHyKa9lMBlTblpCc1u3VNaWeacdAf8B5LUnFW2U5lyIY 78Ew== X-Gm-Message-State: AFqh2ko2sALygsSAoCXLptMy/d5sS6cPn0Ae/AnrDJr58RQ7khRo1yH0 FCr+e4r2mHCBEcX2MQokgR4= X-Google-Smtp-Source: AMrXdXvK1c683eHdUqfXxI1lmY0Gy0qhiRKFpwH8N59974yygUj3LkS6RSCn8B4UKu7F0gwyETaUIg== X-Received: by 2002:a17:902:da86:b0:189:d0c9:f7d0 with SMTP id j6-20020a170902da8600b00189d0c9f7d0mr27449798plx.27.1672095069660; Mon, 26 Dec 2022 14:51:09 -0800 (PST) Original-Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id y2-20020a17090264c200b00192749a5257sm3118539pli.189.2022.12.26.14.51.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Dec 2022 14:51:09 -0800 (PST) In-Reply-To: <87zgb9g6vb.fsf@thornhill.no> X-Mailer: Apple Mail (2.3696.120.41.1.1) 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:251923 Archived-At: > 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 = someone have >>>>>>>>>> a look and see if it=E2=80=99s good? Alternatively we could = copy 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 >>>>>>>>> =46rom 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 = the >>>>>>>>> function. Observe how the first non-blank character of the = comment'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 = have any >>>>>>>> idea, don=E2=80=99t hesitate to go ahead :-) No obligations, of = course. >>>>>>>>=20 >>>>>>>> Yuan >>>>>>>=20 >>>>>>> Sure! Added to my list :) I had a function at some point that = used >>>>>>> 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 = leave it in >>>> c-ts-mode, since there really isn=E2=80=99t much code. Having other = modes 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 = treesit.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 = modes >> 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 = when the time comes ;-) Yuan=