From debbugs-submit-bounces@debbugs.gnu.org Sat May 06 04:19:51 2023 Received: (at submit) by debbugs.gnu.org; 6 May 2023 08:19:51 +0000 Received: from localhost ([127.0.0.1]:59340 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvD8x-0005Nx-Kn for submit@debbugs.gnu.org; Sat, 06 May 2023 04:19:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:34210) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvD8s-0005Nl-6z for submit@debbugs.gnu.org; Sat, 06 May 2023 04:19:50 -0400 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 1pvD8s-0007jS-0F for bug-gnu-emacs@gnu.org; Sat, 06 May 2023 04:19:46 -0400 Received: from sonic302-20.consmr.mail.ne1.yahoo.com ([66.163.186.146]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pvD8q-0000GT-6q for bug-gnu-emacs@gnu.org; Sat, 06 May 2023 04:19:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1683361182; bh=kZ1rnNDXJg+/fsDBPLOJjDXENuG0itaU2R7IYadBYPA=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=M9NKbpDSHi9F1TBCjJInvkG4bcI1m8YmGYTwdNRk0MOIYHM6uRIVlZPl+PC3fyPBxIBECbUWJuixQuMBcOU2UWBWDAcajop1Q6ztrx5RTCuNPknr3yr3RI7hqEZJrY+ZgRnltM4zdfr6wTyE4pd/5VPl1lDjkLN9Y+qdJsc8SQFHfdJ6gJIHWwWp22LQHxn+GlJzT4peIoDmfR86xhFGxjy9dXf+6tbilGCWZ+HZMabvhkgL8cpKnBwf2mTsUy+ZhCVtuGSZMwMpNcNe0XEWSwcbRqdgLUqxiCwEPHC27PKyPN/ESAc9KVysDhXlEqRPCLlpM1LQiyCQ/9DVVTe/fw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1683361182; bh=VfVzJz2y1ykRwlfNtHtwj1c6fYugyw0XL9LBmygyAa3=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=EprH5Hngi0y77nY5kopWJcCDjTVWyih1SPVB9pKyJh/GHG1JKjc7Od3xqLN2i9cY4e7q450Nj/t3cRWZIN9gYmDsPlW2dJSBsnS0CUXrYT9AV7/JJgyvt+86uILsnTOTldbBJ/WRuiE9qM3fJI6yy3pQtXFSfW9lscwnt1b6aCYvaPKJS4EHEOz2SV+zNO43LkDKki6aZUlm78Gf3dJ6TOkMwjGtg2OMJWGDqRVNr5K/pOu2k0YTH3LQip6arHlBEYhKqyeRlpDdIWLk5zlorN4ycCmOj7u+d0bXIHiST6y9gSs4MrWS1kokTZtLZA+YyMaPqVVxZoGUJxuTMQgD4Q== X-YMail-OSG: tAqALIAVM1nHYTEZlr12XSY7HHwUaPI7Ux5bh.NxTKUHuv2Fji4R8Ipc0yGr0LX v0ODvbnaBHxHQ9A4yjTy7pIGC0bqYxQesOdT7RQsusFrfhv3.XxqsHHgyeBM1VkUy.rQPbylFQK9 uxbz9.aTXi0cCmYsEiHl1gRRmNxmPA0Fwk1tGbvcqH_hZgh0LR6qoP9M5EVEfyDe1R39K_WmF8l1 Rr1qFm89.iS0beI_l3DL1IlxJCsqzchcVO72R5bFJpaeq8WoiJ01DJ5Xk6aiGJd.RJ_EXXJBoZ.S GN4BHGg7A7AKxH.qzb7C2j3UWWyCMWYmQld08OL5i8vGCI_jSzgv.2cMI1Xd.kIV1FZdSvC6wv5b MKb.QYCUo3v_w.HbDb8ZtiR0OQBG3MsfAdf7ODrl.75d.47kHAaSCxXmvrKU3tORFlV_4liqpXFW bkDR9jXMVG5B006j.AxBbhNzylhYVnFuGKGEhHbu9C3DTntgNEfN2MUt2QjBmduWyRi0hkNj8tyy fwpx6cBucpiUnarU0GEi7RooIwg2BslD6rDFjQXxEN5jsO9QPEeiP3hcnGb_UPhaTHG9Gb1zhkW2 qogjNRtNQrEXaXyYsfootKgLpsEjRsJOv8EQRGlvkIAM.BXbcN.ELBdcDqa.yqMXmyzzQD_2omcR zTra9NrGKSzUfENclucrEPv0DtsHkspMbH1GX..mrH2PokyXu2vgVDzXaQlDHCVm7yQcM8LREaz. MQZ9YMxWPZuwP6NedeVKwQy7QynYPEgp6xDeEKZH8J_.FKAtczxZijp9RtXW8TGBWygh0VfOXcxI vFZoKqhI5AOwnDO2xnxNUnkjambPIfOGza6Cm0P.Rey.4wMZXzaP9h_mkY04vwBF9a2d29Gq13Lc 03M6X.YesMGZJHprtI6DOG6SN.hLQBzrwKAyub8Xg6VQhVHqtLrRY1YCur3.yf5OHwucr1xqKa0i SfAmZwqel7Ul7zZT7T9Cv.x7thVkV_gDEGPQ8NEum4e6nlMSd8TtLKnwUjn8C7NKZwKtcT4CmhQg H.dhBWjVSLGBtHxelUXKvVlL7DobXxAuAHdDZdK0v0GLJf56S1f3SM7wxim2VLvr4Mozkqs2KAEH yHMBcQiZWo4ssT49nrzUvXgUL03AIch7KG6CH9qNOI8Amn7GyBkrOCdeNOA2wXJ_7Sr0fExm9K_E LzGKvxZWTtztqsnkmV0AbJjPQZzm5khHNDZZw6Za168dcb9GmQ6OQLuhF.FjaH2yf.k0wUpkATmz ylkygTmueh3keufC6USr3doYl0dQtLhJwLW0HGMWp4mvdIZ1Haszm.zgJwa.P1eLq99HMcwIYc9i EyjqI3EwsUQ.ReDa2FcoSOaPf7K5MULPPoEUdjx8_mru42WnK3cUEpxOjRYCcbIstS6yonfZJgbR yU2nVjnWiPdegC_ZWgWQbWaOm043QUDD9jFn0hVuzv3IY1kTNykjM_bcQyt7JwSK6WdwGOM9USQB iEV9v4_BPK53AhmQmwiq318gQehPU1DRHF1x68OqSe0AoxGfe70SovlwivyxgBFDRKPOgkoSAWrK 1cEZMfvkU3xo8XSToo1tNpFH1if_OXPNBw3fIU7_F9YY96qS_5VcsLGc7YocYXU8nnNwUKwidIqo w95wqkl0jv1uxDJB0ENeLOUeP.RnQTNfiR9dlIapoHjCCsDWGiT.jihVHCKMBASLhk.feljEY_bA nCgAHnKAGYZ22ViyxrPxSTgMZGyGdp9jdw3cAqrO2l7FwNJLs3uDErZAj086S8AY3IEADcwVQs7T amcrJIwq5pN2m96rqeYrpK8C5wxr.3n1uhMJftFpJv4U2_MSaAWr3L.V7aaJVIH3UstZmPejJN2M GwKfCEu1IaZ04bk3x6hJFsddAgMpiTRqMrlUY_2IT4VrNrVOKLotLF473q2Q_FYu3rT1h1mhJPHq Hw8EzeZng.90_gfvbZQE3RbIoaU40_jhxRh6ahb6490e93A89U2BNWyjcM28Er2Yo09fFHimPvUu dWtR0JA_roW5t1gm3qOA2QupKJ.ARH4ESQDFNjV9QTqTG0L2_qlWkT5SPEbLu3MDFOW0dT8Gg8Rt 1SSfhDVQccATKhlBS2q2ka9gx4bE3Nxu854xi8vkVU4KEOW2NypxJG_3b6_6MPuweCpy8SOuCcZl MQzsyqEL0RlE.D34GpysqKMrJfrMbfyjzpkgpxIF.E9_tQu2MYo9a9WwblJU6XLKP9mdqhUHuBxh vPM3cFgu_KTJGPchegmbZtepC0KRC1ugpJ9Q8kpgbYnAiswWj.w-- X-Sonic-MF: X-Sonic-ID: 188da29a-b197-4596-8f10-fb98e1472b45 Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ne1.yahoo.com with HTTP; Sat, 6 May 2023 08:19:42 +0000 Received: by hermes--production-sg3-6d6fb994f6-pcrg5 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 4c02d4ded6c2bf10b8e693fcc74be437; Sat, 06 May 2023 08:19:36 +0000 (UTC) From: Po Lu To: bug-gnu-emacs@gnu.org Subject: c-ts-mode does not know about `restrict' Date: Sat, 06 May 2023 16:19:32 +0800 Message-ID: <87r0rtkh2j.fsf@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain References: <87r0rtkh2j.fsf.ref@yahoo.com> X-Mailer: WebService/1.1.21417 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 343 Received-SPF: pass client-ip=66.163.186.146; envelope-from=luangruo@yahoo.com; helo=sonic302-20.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.6 (/) 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: -1.6 (-) Standard C accepts a keyword `restrict', which is used to declare pointers whose referenced object must only be accessed by lvalues based upon one such pointer within the block where they are declared. Like so: argb *restrict src, *restrict dest; c-ts-mode does not understand this keyword. It is not fontified within such declarations. From debbugs-submit-bounces@debbugs.gnu.org Sat May 06 06:30:16 2023 Received: (at 63323) by debbugs.gnu.org; 6 May 2023 10:30:16 +0000 Received: from localhost ([127.0.0.1]:59494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvFBA-0000kT-F5 for submit@debbugs.gnu.org; Sat, 06 May 2023 06:30:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvFB7-0000jC-GX for 63323@debbugs.gnu.org; Sat, 06 May 2023 06:30:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvFB2-0000s7-49; Sat, 06 May 2023 06:30:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=fy/xZyjzfwRPqWJ5w6qooiONUWVVKCPfJn4x8ZZefJY=; b=R+ycGNYZCrHB Lq18sjkqsegV3W6kyFPaVrChTDnQEU/uakpb5hlUds2BW6Mzy4Fks3ejvVhJnHSfEVhfwS/kRmOUM UzcaMCFTVbCdD2y6g9EI2FUo+tC9ouTx3tuZEZG8Lx517QeBt6Y1XtU0xgpelTrBJNprVjZBOpVQz 0bjMKF54WDZNozed/7na+3A6Aq/reLYVc46Lk8SNQa41uRSQYwFjhIdLCiAxs51GvX8Az8SUa29n/ hiQyMp85TqRO4FKIbfgXGxKbs8LOvduUt4NUZ9VPnqySBaaAoCStk5KvG0yI11LB6Hhl5CdJgjziY rJmEdyn1nKMUwWNQ+fLZyg==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvFB1-0006yv-Na; Sat, 06 May 2023 06:30:07 -0400 Date: Sat, 06 May 2023 13:31:03 +0300 Message-Id: <834jophhug.fsf@gnu.org> From: Eli Zaretskii To: Po Lu , Yuan Fu In-Reply-To: <87r0rtkh2j.fsf@yahoo.com> (bug-gnu-emacs@gnu.org) Subject: Re: bug#63323: c-ts-mode does not know about `restrict' References: <87r0rtkh2j.fsf.ref@yahoo.com> <87r0rtkh2j.fsf@yahoo.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 63323 Cc: 63323@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: -3.3 (---) > Date: Sat, 06 May 2023 16:19:32 +0800 > From: Po Lu via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > Standard C accepts a keyword `restrict', which is used to declare > pointers whose referenced object must only be accessed by lvalues based > upon one such pointer within the block where they are declared. > > Like so: > > argb *restrict src, *restrict dest; > > c-ts-mode does not understand this keyword. It is not fontified within > such declarations. It looks like c-ts-mode thinks type qualifiers are possible only in C++? :feature 'type `((primitive_type) @font-lock-type-face (type_identifier) @font-lock-type-face (sized_type_specifier) @font-lock-type-face ,@(when (eq mode 'cpp) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< '((type_qualifier) @font-lock-type-face (qualified_identifier scope: (namespace_identifier) @font-lock-type-face) (operator_cast) type: (type_identifier) @font-lock-type-face)) [,@c-ts-mode--type-keywords] @font-lock-type-face) The tree-sitter library returns a type_qualifier node for 'restrict': (parameter_declaration type: (type_identifier) declarator: (pointer_declarator * (type_qualifier restrict) declarator: (identifier))) Yuan, can you look into fixing this, please? From debbugs-submit-bounces@debbugs.gnu.org Sat May 06 08:18:20 2023 Received: (at 63323) by debbugs.gnu.org; 6 May 2023 12:18:20 +0000 Received: from localhost ([127.0.0.1]:59597 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvGrj-0006MW-L7 for submit@debbugs.gnu.org; Sat, 06 May 2023 08:18:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52084) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvGre-0006MG-K4 for 63323@debbugs.gnu.org; Sat, 06 May 2023 08:18:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvGrZ-0007eI-0E; Sat, 06 May 2023 08:18:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Lax6GXZ4LakMxdwGtsZBkylegLgc8w+8bm9wxPGx6Bc=; b=sgVoUzURHc9w kxB5E26uB6yqGc0hGiTS8SbQMQCMiyRWEVnYhdK9LLVvnUk1nmJ9KggQmJCB+juDGH3lcSezpgCWX vC/UJuLXAB4nYUeF97vNW+OCU/BSQQ45wqvjzEkCY4L6WBcxrJGmpEAytTHDe/tR/91MGYxzwiF0l T0U0BdCkrHqwpB5qJECNT/ezR3q0bMMbW2/AduojRRaQdGAi275N+13rFdwCmwxo0LXhBWOVYMDVV S5UFShn9ivLxD1V+Ff36fqF2jk3tG153fn4wNgd4dl0B4gDgl0+6KXCxGFwzAM8yULAXKBvIa71bp Y96TMihc8UIotX8qfAtpng==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvGrY-0001Ki-HU; Sat, 06 May 2023 08:18:08 -0400 Date: Sat, 06 May 2023 15:19:03 +0300 Message-Id: <83v8h5fya0.fsf@gnu.org> From: Eli Zaretskii To: casouri@gmail.com In-Reply-To: <834jophhug.fsf@gnu.org> (message from Eli Zaretskii on Sat, 06 May 2023 13:31:03 +0300) Subject: Re: bug#63323: c-ts-mode does not know about `restrict' References: <87r0rtkh2j.fsf.ref@yahoo.com> <87r0rtkh2j.fsf@yahoo.com> <834jophhug.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 63323 Cc: luangruo@yahoo.com, 63323@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: -3.3 (---) > Cc: 63323@debbugs.gnu.org > Date: Sat, 06 May 2023 13:31:03 +0300 > From: Eli Zaretskii > > It looks like c-ts-mode thinks type qualifiers are possible only in > C++? > > :feature 'type > `((primitive_type) @font-lock-type-face > (type_identifier) @font-lock-type-face > (sized_type_specifier) @font-lock-type-face > ,@(when (eq mode 'cpp) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > '((type_qualifier) @font-lock-type-face > > (qualified_identifier > scope: (namespace_identifier) @font-lock-type-face) > > (operator_cast) type: (type_identifier) @font-lock-type-face)) > [,@c-ts-mode--type-keywords] @font-lock-type-face) > > The tree-sitter library returns a type_qualifier node for 'restrict': > > (parameter_declaration type: (type_identifier) > declarator: > (pointer_declarator * > (type_qualifier restrict) > declarator: (identifier))) > > Yuan, can you look into fixing this, please? Actually, it looks like we recognize the type qualifiers in C as keywords, via a separate list. So I've just added to that list the two missing qualifiers: 'restrict' and '_Atomic', and that fixes this bug for me. Yuan, is that the right fix? I've installed it on the emacs-29 branch. From debbugs-submit-bounces@debbugs.gnu.org Sat May 06 18:54:56 2023 Received: (at 63323) by debbugs.gnu.org; 6 May 2023 22:54:56 +0000 Received: from localhost ([127.0.0.1]:35951 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvQno-0002q6-CK for submit@debbugs.gnu.org; Sat, 06 May 2023 18:54:56 -0400 Received: from mail-pf1-f174.google.com ([209.85.210.174]:48257) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvQnk-0002oy-Gn for 63323@debbugs.gnu.org; Sat, 06 May 2023 18:54:54 -0400 Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-643846c006fso3477525b3a.0 for <63323@debbugs.gnu.org>; Sat, 06 May 2023 15:54:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683413686; x=1686005686; 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=WkrJ1LZ1cg0gwHrv7rX1HiTqQBo3qhhAkBozwegUEMs=; b=fmU+tweL2DnDYJFkHOJ6sboDWh8Jjx/CEkISbyW0U4Q0FLtcvczWO4nwQxs/ugANVe s47FjKVvb54LW3DMxNwFASC4Ku6lA9gBZLjo1kwQ8mg8A58nunlPSxdynD8W7abhjJg9 zIuQ6Z+pVd4Xr7IXUIvxHfHB41UCn+cvZ6Fz8KRh8uyq10Z0F+R7UBYWw/hEC7jBBGnX uG+MNz0tlfPHwsoxy24GF8CnYdvhmW1dqXtG98FDwHcHHjVZvAjytMh6NDDOIdLRO+lL 0YZBbiODImvSerCH7JA48WII+0yru41S1ggLNe8RsAWhzRWqwRiX1qt8gY+VwGOrrV0t qNHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683413686; x=1686005686; 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=WkrJ1LZ1cg0gwHrv7rX1HiTqQBo3qhhAkBozwegUEMs=; b=LXlbUvuGIR85ARcZrJhmCvNm7Vrl1dCVGc9USFsr4E3hYMn11HCbLcPvniwiGRVp6Z 7J5frdu9XEwagpBr3NuesDY0cNiDlnT7kcPnfUz0ppk3a3Vb9/D5/sd8v8bXVf+0kr7r GKXnbOZm89Bmbf8naMvwDtaeGxbQX5+rcuy1GJjdexjFfWES2hNZGPQP0DYFwKhB4/tC FYmF5lCRYB6T3+mcylVy7rdSm+lqeSc7NAixXLo4W/1z/YJYrMtOOYZCdfFK9pWrJp2S tD/U2bf72zH3LgfTCQ8p6NuORBrU7hHZzAact4pGA9o5U9okQmiIHI/FDF4VCu2smEZx 6FCw== X-Gm-Message-State: AC+VfDw/G3/QKib+NsxUv265Vb28GujHsKaUFJMy8olnMFfMeX+c021f KCts2O5AdkJrQyBWO+gB5Dg= X-Google-Smtp-Source: ACHHUZ5D1ibfkVRrKFhHoq/0A5Ta11wfp5UZzujsAcKoqpN2NS2unRbX96a8RvzCcQEdDuO6mvzLhg== X-Received: by 2002:a05:6a21:920d:b0:f8:ea21:7c37 with SMTP id tl13-20020a056a21920d00b000f8ea217c37mr6835391pzb.20.1683413686309; Sat, 06 May 2023 15:54:46 -0700 (PDT) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id s21-20020a63dc15000000b0052c53577756sm3594939pgg.64.2023.05.06.15.54.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 May 2023 15:54:45 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\)) Subject: Re: bug#63323: c-ts-mode does not know about `restrict' From: Yuan Fu In-Reply-To: <83v8h5fya0.fsf@gnu.org> Date: Sat, 6 May 2023 15:54:32 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <61B53D25-0E51-4B4C-9890-10E9B97E1840@gmail.com> References: <87r0rtkh2j.fsf.ref@yahoo.com> <87r0rtkh2j.fsf@yahoo.com> <834jophhug.fsf@gnu.org> <83v8h5fya0.fsf@gnu.org> To: Eli Zaretskii X-Mailer: Apple Mail (2.3731.500.231) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 63323 Cc: luangruo@yahoo.com, 63323@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 (-) > On May 6, 2023, at 5:19 AM, Eli Zaretskii wrote: >=20 >> Cc: 63323@debbugs.gnu.org >> Date: Sat, 06 May 2023 13:31:03 +0300 >> From: Eli Zaretskii >>=20 >> It looks like c-ts-mode thinks type qualifiers are possible only in >> C++? >>=20 >> :feature 'type >> `((primitive_type) @font-lock-type-face >> (type_identifier) @font-lock-type-face >> (sized_type_specifier) @font-lock-type-face >> ,@(when (eq mode 'cpp) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >> '((type_qualifier) @font-lock-type-face >>=20 >> (qualified_identifier >> scope: (namespace_identifier) @font-lock-type-face) >>=20 >> (operator_cast) type: (type_identifier) = @font-lock-type-face)) >> [,@c-ts-mode--type-keywords] @font-lock-type-face) >>=20 >> The tree-sitter library returns a type_qualifier node for 'restrict': >>=20 >> (parameter_declaration type: (type_identifier) >> declarator:=20 >> (pointer_declarator * >> (type_qualifier restrict) >> declarator: (identifier))) >>=20 >> Yuan, can you look into fixing this, please? >=20 > Actually, it looks like we recognize the type qualifiers in C as > keywords, via a separate list. So I've just added to that list the > two missing qualifiers: 'restrict' and '_Atomic', and that fixes this > bug for me. >=20 > Yuan, is that the right fix? I've installed it on the emacs-29 > branch. I check tree-sitter-c=E2=80=99s grammar and it defines type_qualifier = [1], so if you move (type_qualifier) @font-lock-type-face out of the = check for cpp, if would work. Recognizing them as keywords also works. = So both are technically correct. C-mode uses keyword face, so I think = your fix is a-ok. [1] you probably know this, but for completeness: type_qualifier: $ =3D> choice( 'const', 'volatile', 'restrict', '_Atomic' ), Yuan= From debbugs-submit-bounces@debbugs.gnu.org Sun May 07 01:13:43 2023 Received: (at 63323-done) by debbugs.gnu.org; 7 May 2023 05:13:43 +0000 Received: from localhost ([127.0.0.1]:36171 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvWiN-0005NF-DT for submit@debbugs.gnu.org; Sun, 07 May 2023 01:13:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60082) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvWiL-0005N1-BG for 63323-done@debbugs.gnu.org; Sun, 07 May 2023 01:13:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvWiG-0003EH-2G; Sun, 07 May 2023 01:13:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=U0qPHbrM+l1fjmjfLn3fox0U+cZWB7Zhgi3YI3TzTJU=; b=pPkXb9GHB+m9cI5tpg0R OoPq+r/i/BZCMAldpHZRyVefhQ/9PZyEnBY9C8ugCSKChKJfRvd76JifxsUAbRZTwVZmkcdifeYQ1 /o6fI94YR+2IAuHuxYcW3exCVnfAKLMUvKAa1NHLHwHImicUsbAL5TcbYIAnbUqQDxy+D2zhUMd0p pI1vZRgsSAds5vZ48NERXsOWtPhvhjXK3o5GcSDHAtByIjyi0yL9suH81m2W+T1Zy1F78s/zaz4vZ 0uOg6Wq4EFDXaXcpmUl5cdMR+Mp2K48+LkRJSCEjE63nkILZSM0T9YZPQ23ffNW7AzigPOldXZl9R vijMuP1vCZbfzg==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pvWi8-0006DK-VS; Sun, 07 May 2023 01:13:35 -0400 Date: Sun, 07 May 2023 08:14:25 +0300 Message-Id: <831qjsg1u6.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: <61B53D25-0E51-4B4C-9890-10E9B97E1840@gmail.com> (message from Yuan Fu on Sat, 6 May 2023 15:54:32 -0700) Subject: Re: bug#63323: c-ts-mode does not know about `restrict' References: <87r0rtkh2j.fsf.ref@yahoo.com> <87r0rtkh2j.fsf@yahoo.com> <834jophhug.fsf@gnu.org> <83v8h5fya0.fsf@gnu.org> <61B53D25-0E51-4B4C-9890-10E9B97E1840@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 63323-done Cc: luangruo@yahoo.com, 63323-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: -3.3 (---) > From: Yuan Fu > Date: Sat, 6 May 2023 15:54:32 -0700 > Cc: luangruo@yahoo.com, > 63323@debbugs.gnu.org > > > > > Actually, it looks like we recognize the type qualifiers in C as > > keywords, via a separate list. So I've just added to that list the > > two missing qualifiers: 'restrict' and '_Atomic', and that fixes this > > bug for me. > > > > Yuan, is that the right fix? I've installed it on the emacs-29 > > branch. > > I check tree-sitter-c’s grammar and it defines type_qualifier [1], so if you move (type_qualifier) @font-lock-type-face out of the check for cpp, if would work. Recognizing them as keywords also works. So both are technically correct. C-mode uses keyword face, so I think your fix is a-ok. > > [1] you probably know this, but for completeness: > > type_qualifier: $ => choice( > 'const', > 'volatile', > 'restrict', > '_Atomic' > ), Right, they just copied from the C Standard. Whether we want to stay with qualifiers in keywords or not depends on whether we thing type qualifiers could or should be fontified differently from keywords. (What do other IDEs do with C type qualifiers?) Something to think for the future, I guess. For now, I'm closing this bug. From unknown Sat Sep 06 09:27:46 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 04 Jun 2023 11:24:06 +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