From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel =?UTF-8?Q?Mart=C3=ADn?= via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#59628: 29.0.50; treesit-beginning/end-of-defun problems in C/C++ Date: Mon, 28 Nov 2022 11:56:14 +0100 Message-ID: References: <83v8n0puxi.fsf@gnu.org> Reply-To: Daniel =?UTF-8?Q?Mart=C3=ADn?= Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30259"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin) Cc: 59628@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Nov 28 11:57:32 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 1ozbpL-0007gm-Cv for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 28 Nov 2022 11:57:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ozbp0-00060l-BE; Mon, 28 Nov 2022 05:57:10 -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 1ozbos-00060Q-Sr for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2022 05:57:03 -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 1ozbos-0002wF-6t for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2022 05:57:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ozbos-0000VI-39 for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2022 05:57:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Daniel =?UTF-8?Q?Mart=C3=ADn?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Nov 2022 10:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59628 X-GNU-PR-Package: emacs Original-Received: via spool by 59628-submit@debbugs.gnu.org id=B59628.16696329911925 (code B ref 59628); Mon, 28 Nov 2022 10:57:02 +0000 Original-Received: (at 59628) by debbugs.gnu.org; 28 Nov 2022 10:56:31 +0000 Original-Received: from localhost ([127.0.0.1]:47868 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozboN-0000Uz-6d for submit@debbugs.gnu.org; Mon, 28 Nov 2022 05:56:31 -0500 Original-Received: from sonic304-21.consmr.mail.ir2.yahoo.com ([77.238.179.146]:44482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozboL-0000Ur-Np for 59628@debbugs.gnu.org; Mon, 28 Nov 2022 05:56:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.es; s=s2048; t=1669632981; bh=crjM8xbxxbxG6WZl+2PlVa2yJej2UORWHFXEaIuvtZk=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=l7I5wWx5vHApuhzS7Hog8E+xxHE34OF9SQVjDUarKObzifpj20BuKpe0AVeuv1k3wDPIW0l6FSDyNxw6PmFwOFSsakLW8wWbSf0/fWOFci+OstnhGeTp31+KnkfrAVsRxvj2IuZmmbUHDmQf7UKK0HYGfczQ7KRDD0EDRcGeinCANIh5dh6QLKXnqhCL/79oZi3JpJaHT06JT8kYc1MBKA3JhRcWUtTcoO/J/atfXTDs4vyoFxPRYHsPLl/9uws/6/73R+IKwHHo/ZY5k7F2IBX6GBiLlBDh8mmF8D7vb5nIZbBjLJuO7GCUvtTJjiFXczxdKZwsJD0iI/iQG9yabw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1669632981; bh=iPlRWmGFtKNTIVTIaPaz8rWLLErQVhsBAf7ijOII+Vw=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=FJdH6Ud2bY2x+trwsJg47T46MYV+cpP49eHwp2mPQxXriBsqkCLs0H5gY50F4RClmov5rq3e4T22KC1SipbC99D2OncYISj4UPHlxM5wQ5MoYDhKSyabCSGbnfW1I2/cRC6jD6htlO35esrgLo5kKLfv1HQQfMH3jAk/u8JGH16OcmyYZdXU11rYklQZzWa7zFdV4ildLY7ddrtFjDeMxqhywgc90prb4WOh+OpYvdLKMJ4CV/10Xlne7dZLWw85eTi+3eqe+S2rP86vFoEQcLc5be/zDfDI5bUmOAA9eS1JYNRBGPUVxsdR5NKJHZw/SggixpJ5hdhrgfeSt+hI1A== X-YMail-OSG: QOUSDZQVM1mhXmRzOnOcpginUzAJhocPcPo4n6fTMQFEUeZrigkt.bVPd4vQDrY hd9lMtNYpCmhzlOIBtqXT30DWgKx_F5WscyC8o_jgdHL38B_pStzE0J2s11E5m2bFB4zYydSedBo FGDcs2czVdM3wu0d5h9t9iiCuiboxdLgQFAnnAqfNl1Md8t5fZxNCv_6T8ZyZZFNl8ux5HTdfYkY KNDz1NGkqzc5xWz1gUrPpMOdJhw5AiymumdWFa1BieSL_.Vo7A2zRPQdqENWg6a9J35oUpF94Mg5 FO4In1DeTa5wjmq5JJpZMqQS4zMoJD2GNb171Whk3QmzWOTwQPgXdy_NdM4JmOWHwVQTSRPBk37I 66fSdlCOdABS8npUZnwwj5g8CqgPbxiUW_Yui7pS6sN0M6ehWvUQ2V1EZPcuWNsGDEYbf2ucDHfa M2wgoPTUZ5.M8HTuODOSclfeGTDINKtmkHvK4UFTtgW.kmVH3DeHYUztSz.aFn_AA97JuPtuzaRf gPlwUS7DI7RJT0jTuNuN6uAbFbWoqlTHRtQF0J9rHAE9vf7MeGFKw61rW5ORBmdkChDv_NsEYr.x l6gjfO5BvWrOfajMRisDPKvuRP8xfd5npGkdsOtF2rjcwXQ8tS6Z5Lm4Ol_Uj3CkaELXBC4BTzvQ i412WTgpUqGUc5cmknIA6T4E6UulvItzsot6GbQ6L8_oKVb_QT6jsaYMX2JQVpFRhDD6HDTGCRMI ZhqIbdx9qjTDd5.Jc0OjvudmWFa8587HMX.Wv_B2efIF2gQXRrsiTZwxrK5eb.qvCM6Hmp8Vvn1u eItRKP.n2Jce79CgDJrbhoHZXZ1dieQfGZt1feqtc8 X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ir2.yahoo.com with HTTP; Mon, 28 Nov 2022 10:56:21 +0000 Original-Received: by hermes--production-ir2-74cf6dc4df-nhpqd (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID f911801ee38f2b27e8b6b3062d7b2b63; Mon, 28 Nov 2022 10:56:16 +0000 (UTC) In-Reply-To: <83v8n0puxi.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 27 Nov 2022 12:12:57 +0200") X-Mailer: WebService/1.1.20863 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo 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:249281 Archived-At: Eli Zaretskii writes: > To reproduce, visit any C source file in the Emacs tree, turn on c-ts-mode > or c++-ts-mode, go to the middle of some function, and type > > M-: (treesit-beginning-of-defun) RET > or > M-: (treesit-end-of-defun) RET > > This will move point to very strange places, which generally are neither the > beginning nor the end of the function. In very simple functions, like this > one: > > void > __executable_start (void) > { > emacs_abort (); > } > > the result is correct. But once the function is even slightly more > complicated, for example, like this: > > static int > margin_glyphs_to_reserve (struct window *w, int total_glyphs, int margin) > { > if (margin > 0) > { > int width = w->total_cols; > double d = max (0, margin); > d = min (width / 2 - 1, d); > /* Since MARGIN is positive, we cannot possibly have less than > one glyph for the marginal area. */ > return max (1, (int) ((double) total_glyphs / width * d)); > } > return 0; > } > > the results are very far off the mark. > > These two functions are the only ones to move by defuns in treesit-based > modes, right? So they should be improved, IMO. > If I type M-: (setq treesit-defun-type-regexp "function_definition") RET treesit-beginning-of-defun and treesit-end-of-defun do the right thing. That begs the question: Is it really necessary to have a Tree-sitter regexp variable to match defun nodes? If yes, should it already have a sensible default value so things work out of the box in most major modes?