From unknown Mon Jun 16 23:47:17 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#60529 <60529@debbugs.gnu.org> To: bug#60529 <60529@debbugs.gnu.org> Subject: Status: [PATCH] Fontify C++ function definitions in c++-ts-mode Reply-To: bug#60529 <60529@debbugs.gnu.org> Date: Tue, 17 Jun 2025 06:47:17 +0000 retitle 60529 [PATCH] Fontify C++ function definitions in c++-ts-mode reassign 60529 emacs submitter 60529 Daniel Mart=C3=ADn severity 60529 normal tag 60529 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 03 17:15:58 2023 Received: (at submit) by debbugs.gnu.org; 3 Jan 2023 22:15:58 +0000 Received: from localhost ([127.0.0.1]:46935 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCpZd-0007aX-M9 for submit@debbugs.gnu.org; Tue, 03 Jan 2023 17:15:58 -0500 Received: from lists.gnu.org ([209.51.188.17]:52020) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCpZb-0007aP-Qg for submit@debbugs.gnu.org; Tue, 03 Jan 2023 17:15:56 -0500 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 1pCpZb-0003su-Kb for bug-gnu-emacs@gnu.org; Tue, 03 Jan 2023 17:15:55 -0500 Received: from sonic310-12.consmr.mail.ir2.yahoo.com ([77.238.177.33]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pCpZY-0006Gh-JQ for bug-gnu-emacs@gnu.org; Tue, 03 Jan 2023 17:15:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.es; s=s2048; t=1672784147; bh=4k992QbXn3Qv6hWxRmTCrMJ7vK3kazF5y66RzRVFsis=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=aDTzOKYwrYmcFANUsy/lFrImsY8nNfYnIF0DR+UymT8dVL9LUiLCnyGoFD6+IsQsjvLbjO+W1Y8FrsIsZ1sCIfTv6+3s0XQeHtvSmNGeI8jXlZ1pEeE98WxG3oxalG2GJDDtoFeV5UlPKejfQbzOeJ3TNohpTD0wMjotxj0IeZYvY9kUVhnYGUykrxSSvfiIeeV/GmPdYKPaFvH5EvBhAQc4ITK+v22Vojb5qYAHgFeJR/c3J/sEQW9TkfUDXt+CI6yFyFAHye52687yCNx1lDCWzLu4dYPmKu2Nr3/H/UPUq71fElhr8FfPZbbnCAEZVgoUD1jad7OZ+DWEaJQ1pQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1672784147; bh=008g37dy3QzwP1+0qNmopXyj58Hu/7g2PBrRS0goujq=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=OOrqEWJsO0TLsygWyTdVQtgEhEF+bNfGK2QKy0O27/8bDOq3FjI4tfQRRgCogRBOYcwAkpKs0J3lx3jmNvDUz/Fvf6nkfhoTeMra/+T8ALDmBifuuXB/3UXis+J6mWrCWhLuLRCQxPeR3PjDQkwoYEvYq7XLthk56rF/3yD5SurDiOs9t1f9gwEqMCOl1VkC2arAErsLhtZSzMtkr2zJRp6SW0HtZHZ4Y+N9AYDkqiOopshcTmsxSEzAtt9fq9PHjd5sCYndwGxO5hKVXqd7Fukwx9jCf2eXdscJrRJJZi8tFwKOLNsiyZiVYa+uoHd2w1Mst+hie2ZNUYV4Dw0etw== X-YMail-OSG: cRmMN7wVM1n.QWthDGnYYbqiJphIGwhF_OdT2iwaQzEyrKfH9f5GdzKqMX7Cr8u CHa0Y8HphlfY93ux8S0u8hc_1.xB_iA49tVJVyDrzfZlTPs_5mzKNUGE.lcBG._lRwtUfuyymJ1t 1lA537DA_oCYZf14xrnwnhhwnUNzFuaQ.ibJFy7P6tlRzCA44.8WEHj.lYtMzk02JxTZ23UDsm58 GFqQ18J53xzgxFLVC5DTjL516MrY27PQLK2f_ADxOE7KQwrh09bY7iu5zCehIpOOjE6jpWscOCqU 3WMDnXBa3CN47P.cgbtpnD2c7lYoeZLvLedQdK4aCLZY54DJfY_l377a8U_Bi8JldHNC2eHaaOQ3 pJxnOcWryL5MKrVu4ucyWHLbQ6myLJQH3JE4XJojmdc0wawuygv8ZrRX63R_tufluyM.1Rt4MThn 1CsLJ3R.aefoVp1tJXxDyGv56P.H1BolHRzAAg2kZEVw._ZzxC2pL3KwP_Y2DOBv3fhPeYi5lIT5 AP8kkgcraoHCIVLt2KZ0Kl.UtkEwBM5DXVNwzq9V0UYM83enrcwQofectVYbj5y8HKYECL.2McDP CxvGcVM.n4oKwaOTBWdGbtcVxGLjZKmNbsvMryUb4G6WrIsV8Hfzom4W5ehb5S5jdDW731K0IpYM bNSxMSe1212QpNMWjOWCzeFlZcUKigPv1Pa9jX3R8jPSid2qPtIR2UFeM6xbG8UOZIQpm78nfoNT FYv5Mxm6tYXeU44neI1hdyCE3vVIxHfAr7BrSbXHlmTHPnOx2ZtODjGqaSf0_Iu.DAg844We6C3z DwHvjHAWsHwBzSjnzJZvIz6WEv60MRH9H6Ol7hmDlk_HdZG8p7wMZbUC4I_6noW2HGvoolF.K4u7 1dnYuVmkNUpG.FC9EyAJsLJUG2xerY2qy0kko4t4YYCHMuD2UIzmk8Sbr_gZnZOD6cGMDjKc0k.o b.pzBc6j5BRTW.swtkEPl0A8G1BqwtST0.CGf6Md9h1Aaqt7TZTrYqng8qHK2G5YM05B3p3qVwsP leh_Snf02w6333XUCxCe5pzGxOXhMoxwL7C4GyrgxDBCVOP8H0660eOzUdirkvF.MQzFRFhMboN3 3REz5reg5a.d5GbifkXgQf_T4.u2CB771yh_rr7I38fFEdDTEtts2B3nSWTCqTquLcf6tT5Dbm2A dE89eNLMoROtsIHFSFY3qn4IYgwWjNArm07XGJ4XAgeMs3vUSSP_dxhBwwUQcNQGkTzpjbnnZR0Z SH2WEpLp03H4A7BvUaoYHLY1CjIb1BuQZjFkh8fUNgJ2QCVq9n6c3ZsOQHqcAtSHfqR9_6S9y85q AES0NH54xXZkOm3drxQb4UeI9SJ9fuUU1_SI_8p.F6HTvtsrg4nOY8g1vjlSwSwDZzLdyJX3TUGy oiRLL18xqHOMfWzxZJywVFrHqsh91_cK9i9__eNVuh7dzFDqf9iijD4vNLwCCVfHZy.X2.wikwyH x83nOMZhn5ASdwH8cc6NGcxiZTZZV0C4koNRtYu5mLKQA_gOZat55pcRqA2t9TVA1T8xvd3JsiKT iH3IrqEN_6JB46pViIbCevLCvrZzx3uQUvDrTBge1bUauuvcg4w4hXkibsV9.rOt3Z60lKE4Vtas 1AjIrBp7Ro7joUjtRUI1EPoEcoRTxuyxddLfPn5tQ2i7PLsC0xgzNfewYtihr7e50IVvWOjzHoih x7y2KvSXEPbN9.vgWPf4ZHYaJUqrctzF1YI0wrxo1j0jX_YgWgM70nA6kvDFT7Mx6iEP8T7KMKag aEFZKgUPm4HZSSSHZhic.9Zy0sncWW3qyV7WdFEEi.Z78UiblxdiiMf1pwxHapOaDysFWERYMzqE Tc5sICxh5LLpx1Al8bWKv3h_98_xUS.TkpT_QIWzE63HSjT3MjLEsZrxlyam4fFmhEegaXcPqPGF iqvSWEkkfb5Pn9nM5N6CmNdc748eb1stiuk1YbjCra_nwKc8i3ZHVI_QhqDCz5LTr.RMDT3MDr_6 kga5qExX6gZ1Zw1.X4gzkoCpJ7wxot3UAwgzyc9PigMxLcmqOTyRetyRWkm02LWLe8O6rbtf6sT5 a.34.X54RX0j4KgB6lws4FyApJSj69tMANAYVViLwd6YsoRqbltQrFLlt2wgXJuus3n53mmX8tre fS2Uhhyu8LEQn.62uGyjkdhS6.MAw5mZ.DLQfuNjMj13aYyVQsK52bPTsb48wB6koYgMmOxmL0K4 J2sUwpgoWmInAXk8HF6lhgRFDRHQ- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.ir2.yahoo.com with HTTP; Tue, 3 Jan 2023 22:15:47 +0000 Received: by hermes--production-ir2-5795fc58c8-g4k29 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 41be4aa1eacbd8c7dc9fba3937793795; Tue, 03 Jan 2023 22:15:42 +0000 (UTC) From: =?utf-8?Q?Daniel_Mart=C3=ADn?= To: bug-gnu-emacs@gnu.org Subject: [PATCH] Fontify C++ function definitions in c++-ts-mode Date: Tue, 03 Jan 2023 23:15:41 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" References: X-Mailer: WebService/1.1.20982 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 2945 Received-SPF: pass client-ip=77.238.177.33; envelope-from=mardani29@yahoo.es; helo=sonic310-12.consmr.mail.ir2.yahoo.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain Tags: patch Given the following valid C++ code: void Foo::bar() { } c++-ts-mode should fontify bar with the font-lock-function-name-face face. The attached patch adds support for fontifying function declarations whose identifier is "buried" inside qualified_identifier nodes. I've checked that the patch also fontifies bar in void Foo::Bar::bar() { } but fontifies bar with font-lock-variable-name-face face in the following cases: Foo::Bar::Bar2 bar; Foo::Bar bar; I don't check for C++ mode in the code, as I think the impact of this new check should be negligible for C code, but I'm open to feedback. Thanks. --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Fontify-C-function-definitions-in-c-ts-mode.patch >From 6e687edc303ba5dba5f58479ad076c4ab9b610f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=ADn?= Date: Tue, 3 Jan 2023 22:08:13 +0100 Subject: [PATCH] Fontify C++ function definitions in c-ts-mode * lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier): Teach the code how to extract the declarator of a node of type "qualified_identifier". (c-ts-mode--fontify-declarator): Consider the case where the identifier in a function declarator is buried inside "qualifier_identifier" nodes. --- lisp/progmodes/c-ts-mode.el | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index ba38845a084..30a14ecdfae 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -430,6 +430,9 @@ c-ts-mode--declarator-identifier ((or "function_declarator" "array_declarator" "init_declarator") (c-ts-mode--declarator-identifier (treesit-node-child-by-field-name node "declarator"))) + ("qualified_identifier" + (c-ts-mode--declarator-identifier + (treesit-node-child-by-field-name node "name"))) ;; Terminal case. ((or "identifier" "field_identifier") node))) @@ -439,7 +442,14 @@ c-ts-mode--fontify-declarator For NODE, OVERRIDE, START, END, and ARGS, see `treesit-font-lock-rules'." (let* ((identifier (c-ts-mode--declarator-identifier node)) - (face (pcase (treesit-node-type (treesit-node-parent identifier)) + (qualified-root + (treesit-parent-while (treesit-node-parent identifier) + (lambda (node) + (equal (treesit-node-type node) + "qualified_identifier")))) + (face (pcase (treesit-node-type (treesit-node-parent + (or qualified-root + identifier))) ("function_declarator" 'font-lock-function-name-face) (_ 'font-lock-variable-name-face)))) (treesit-fontify-with-override -- 2.34.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 04 01:50:24 2023 Received: (at 60529-done) by debbugs.gnu.org; 4 Jan 2023 06:50:25 +0000 Received: from localhost ([127.0.0.1]:47390 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCxbR-0003C8-4q for submit@debbugs.gnu.org; Wed, 04 Jan 2023 01:50:24 -0500 Received: from mail-pj1-f42.google.com ([209.85.216.42]:44552) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pCxbM-0003Bm-6U for 60529-done@debbugs.gnu.org; Wed, 04 Jan 2023 01:50:19 -0500 Received: by mail-pj1-f42.google.com with SMTP id o31-20020a17090a0a2200b00223fedffb30so33408543pjo.3 for <60529-done@debbugs.gnu.org>; Tue, 03 Jan 2023 22:50:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=8F0XWSu5rJzGfifBYjcILIMQ+/mvdHA9gDJFRvayvug=; b=nG7zNeXEhQ5qdZExYmEKDKEvqSqV/h5oVZxDGDdxQllZx+aFtr+5IPmgGQaBG4MA7h xxgy1Pz7qbS1Vfxp7h1Gw2tSV5Cd7rcWivSjZYx16oePVjAz4jNRcpCyO1A9xMpW8qsG VJc0ArRHNzROAdQkxhLXLLj7HoEn1/M0RBzv4BmlyAC1O6y5oChlIK4ZsQ5BEUvTnUQu V4OYQzCM8FzcNAxI68qhRus38nXtz1sXCTJntL2qqKvFzyU8bhHaJ2LQ8Lea8yLHRDpO BVv4Exjxkfu8Q1ldFYHA87tR7OQ0MZ+Yzh3ZjY4/jFo6LGYxUh7ZwGQvlwzBKbb6jS5J 3BdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8F0XWSu5rJzGfifBYjcILIMQ+/mvdHA9gDJFRvayvug=; b=KcwA+C+eXVDzmJX3zxm1/vVyYlLyPfIWgfxL3Sk0Hq2hXLgHF+JU4t+9G/0+Q1OkB3 ess1tNqkah7k2fa3da+T58qd2IX6cckQE/U8TD+gK6SyW3R9Q9b4y8DUCAZjfMhBZ/AD /+65L8rcHV+2GVFrribs1+iQ6dPVHGqFv6Vkih1YwTYPYbRKu9CnddkOJ8lFjl74JTr7 E2ei/mbjmT0L8hCdW6BgDdBEOXPEioq1Rfr4KQ7aFgNepVGlQ36kXL1nhg3qeDquM51X TYakhYB2WJxNuLIOQ0/7y2IyExPpWfo16ac42Zb5jGgaNZ7KPDgjS1MhE3UAX0gr7Hqt p8uA== X-Gm-Message-State: AFqh2kpAZC0y4Etv5tPchMFiit+uBpWiIssiYQ6hoS0k3eE7ikDGvJMq 4ukO4MMG8YEHGHiwcMEnDx4= X-Google-Smtp-Source: AMrXdXsoWKKeRD2ClAnGalzaSKmtarZ0vexhs31dWMZFeBqyuW5wFTCTzCvFp1Fer0V8sjxvkfm3Gw== X-Received: by 2002:a17:90b:e84:b0:226:5c65:547b with SMTP id fv4-20020a17090b0e8400b002265c65547bmr13672550pjb.30.1672815010417; Tue, 03 Jan 2023 22:50:10 -0800 (PST) Received: from smtpclient.apple (ip68-3-33-122.ph.ph.cox.net. [68.3.33.122]) by smtp.gmail.com with ESMTPSA id rm10-20020a17090b3eca00b00212cf2fe8c3sm634353pjb.1.2023.01.03.22.50.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Jan 2023 22:50:10 -0800 (PST) From: Yuan Fu Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#60529: [PATCH] Fontify C++ function definitions in c++-ts-mode Message-Id: Date: Tue, 3 Jan 2023 23:50:08 -0700 To: =?utf-8?Q?Daniel_Mart=C3=ADn?= X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60529-done Cc: 60529-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Daniel Mart=C3=ADn writes: > Tags: patch > > > Given the following valid C++ code: > > void Foo::bar() { > > } > > c++-ts-mode should fontify bar with the font-lock-function-name-face > face. The attached patch adds support for fontifying function > declarations whose identifier is "buried" inside qualified_identifier > nodes. > > I've checked that the patch also fontifies bar in > > void Foo::Bar::bar() { > > } > > but fontifies bar with font-lock-variable-name-face face in the > following cases: > > Foo::Bar::Bar2 bar; > Foo::Bar bar; > > I don't check for C++ mode in the code, as I think the impact of this > new check should be negligible for C code, but I'm open to feedback. > > Thanks. Makes sense. I applied the patch. Thanks! Yuan From unknown Mon Jun 16 23:47:17 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 01 Feb 2023 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator