From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Randy Taylor Newsgroups: gmane.emacs.bugs Subject: bug#61302: 29.0.60; rust-ts-mode does not show function-invocation on field-properties Date: Thu, 09 Feb 2023 03:38:59 +0000 Message-ID: References: <6209c097-0369-828a-7513-d8afb73fd7f0@secure.kjonigsen.net> <32e34056-1a88-469a-819c-ae52e7d60712@app.fastmail.com> <3e40d23f-1629-c5b7-1f17-d769790d6494@yandex.ru> <56a0b3d9-4a8f-0f81-83cb-6b78271dd782@yandex.ru> <3dc0ab0a-b0b1-91b8-f393-8db3899cf956@yandex.ru> <05ee38a5-f783-5b2c-add6-ee2ea27ba297@yandex.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_9ASpUTGXE3j0vUPAhQXVw1Cprx4FIhj5GPJpCFKbY" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17674"; mail-complaints-to="usenet@ciao.gmane.io" Cc: eliz@gnu.org, Jostein =?UTF-8?Q?Kj=C3=B8nigsen?= , 61302@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Feb 09 04:40:24 2023 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 1pPxnL-0004Qp-3U for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 09 Feb 2023 04:40:23 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pPxn2-0003Zt-3r; Wed, 08 Feb 2023 22:40: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 1pPxn0-0003ZR-I4 for bug-gnu-emacs@gnu.org; Wed, 08 Feb 2023 22:40: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 1pPxn0-00051M-8p for bug-gnu-emacs@gnu.org; Wed, 08 Feb 2023 22:40:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pPxn0-00069Z-4n for bug-gnu-emacs@gnu.org; Wed, 08 Feb 2023 22:40:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Randy Taylor Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 09 Feb 2023 03:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61302 X-GNU-PR-Package: emacs Original-Received: via spool by 61302-submit@debbugs.gnu.org id=B61302.167591395623567 (code B ref 61302); Thu, 09 Feb 2023 03:40:02 +0000 Original-Received: (at 61302) by debbugs.gnu.org; 9 Feb 2023 03:39:16 +0000 Original-Received: from localhost ([127.0.0.1]:57123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pPxmF-000682-Sb for submit@debbugs.gnu.org; Wed, 08 Feb 2023 22:39:16 -0500 Original-Received: from mail-4018.proton.ch ([185.70.40.18]:27069) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pPxmD-00067o-G8 for 61302@debbugs.gnu.org; Wed, 08 Feb 2023 22:39:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rjt.dev; s=protonmail2; t=1675913946; x=1676173146; bh=faZUpVhvQyOMpQvFboru9y13C18O7rVugHFNkDxXSyU=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=glB8c4lmJxsazSxSmZCjal+287inWudkeblpeSheIDWIbZinYUGmXrY7paLWfHsPm 3sJirM4kA7O7KjHAFjbA9qUFd79hRtEZinfods/ZSppjrHGwjNPvAfVomJ8YQFiSdE 9EvxwgzNrtbsSKuwsbYwfzLjOgHcZNXedAXeAb4uFQaYYQd9zcTdcsu9GUmnveXKdT ldEa+koI9VKldXlQc2dIFxpMn5QMyL1vj9uT2y0is8WYJ+L3DDcJv2Fick54vj4yMU sL2iKSRfxVrRFJtw6cRK5Tc0ynBRkG/VWiV3OIENBbqPzJlWq5dBvgzXmmJT+Ghw/J r3qCLNWqgFk/A== In-Reply-To: <05ee38a5-f783-5b2c-add6-ee2ea27ba297@yandex.ru> Feedback-ID: 44397038:user:proton 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:255181 Archived-At: This is a multi-part message in MIME format. --b1_9ASpUTGXE3j0vUPAhQXVw1Cprx4FIhj5GPJpCFKbY Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wednesday, February 8th, 2023 at 10:44, Dmitry Gutov = wrote: >On 08/02/2023 05:38, Randy Taylor wrote: >> I think the following rule from the type feature: >> (scoped_type_identifier path: (identifier) @font-lock-type-face) >> >> Should be changed to font-lock-constant-face and moved to the module fea= ture. >> >> That way, things like the following will be highlighted correctly: >> let date =3D DateTime::::from_utc(date, chrono::Utc); >> ^^^^^^ this guy >> >> Unless I'm missing something. > >Should Utc in the above example be highlighted with >font-lock-constant-face too? No. It's a type. > >What if it looked like this: > > let date =3D DateTime::::from_utc(date, chrono::utc); > >If we decide purely based on capitalization, then I guess the rule >should be present in both lists (with capitalized? regexp in one, and >!capitalized? regexp in another), and a few more rules should be >duplicated as well. In both cases, utc is still a type even if it's not capitalized. My patch addresses this. > >This becomes a little more painful semantically, given that the first >'utc' in the example above is parsed into a (type_identifier) node, not >just (identifier). > >>> On a distantly related note, we have terms like 'usize' which is >>> normally a type (and highlighted as such), but can also feature in >>> expressions like >>> >>> let row =3D usize::from_str_radix(row, 10).map_err(|_| error())?; >>> >>> where it is now highlighted with font-lock-constant-face. Should we try >>> to do anything about that? If there is a limited number of built-in >>> types in that situation (e.g. all of them primitives), we could handle >>> that with a regexp. >> >> Right. I think it makes sense to handle the primitives with a regex. >> I'm not sure if there's anything else beyond those. >> There's a list of them here: https://doc.rust-lang.org/reference/types.h= tml >> I think it would only apply to the numerical and textual types. > >So 'usize' in the above is definitely a "type", not a "module"? I think so. You can see on usize's documentation page (https://doc.rust-lan= g.org/std/primitive.usize.html) that it provides that function, amongst many others. > >>> Or vice versa, in >>> >>> use std::{fmt, fs, usize}; >>> >>> should 'fmt', 'fs' and 'usize' be highlighted with >>> font-lock-constant-face rather than font-lock-type-face? >> >> They should indeed be highlighted with font-lock-constant-face because t= hey are modules. >> We assume the types will be capitalized since that's all we can really d= o (and it's the convention anyway). > >If they're modules here, I suppose they should be highlighted the same in > > let row =3D usize::from_str_radix(...) > >as well. The bright side is that will make a more complex regexp >(enumerating the lowercase named types) unnecessary. Yes, except for the primitives. I have attached a patch which I think addresses most of the concerns (altho= ugh I've been at it for a few hours and my brain is mush now). The patch does the following: - Separates import-related stuff and module use by leveraging the use_decla= ration query (simplifying things greatly IMO). - Highlights primitive types used in scoped_identifiers. - Properly highlights types belonging to a module no matter how deep it is = (or your money back guaranteed!). - Maybe some other stuff I forgot. I'm too tried now :). A few questions: - Should module be moved to level 3 to be with type? - Do we still want the module feature, or should this stuff be put into typ= e? --b1_9ASpUTGXE3j0vUPAhQXVw1Cprx4FIhj5GPJpCFKbY Content-Type: text/x-patch; name=0001-Fix-rust-ts-mode-type-and-module-highlighting.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Fix-rust-ts-mode-type-and-module-highlighting.patch RnJvbSA2MmNhMjQ5OWE4ZDY0NWM3OGU5YWU4YjRlMjMzNTc3YjdlYzViMGFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYW5keSBUYXlsb3IgPGRldkByanQuZGV2PgpEYXRlOiBXZWQs IDggRmViIDIwMjMgMjE6NDM6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIXSBGaXggcnVzdC10cy1t b2RlIHR5cGUgYW5kIG1vZHVsZSBoaWdobGlnaHRpbmcKCiogbGlzcC9wcm9nbW9kZXMvcnVzdC10 cy1tb2RlLmVsIChydXN0LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncyk6CkFkZCBuZXcgJ21v ZHVsZScgZmVhdHVyZSBhbmQgc2ltcGxpZnkgJ3R5cGUnIGZlYXR1cmUuCihydXN0LXRzLW1vZGUp OiBBZGQgJ21vZHVsZScgZmVhdHVyZS4KLS0tCiBsaXNwL3Byb2dtb2Rlcy9ydXN0LXRzLW1vZGUu ZWwgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNTAgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9w cm9nbW9kZXMvcnVzdC10cy1tb2RlLmVsIGIvbGlzcC9wcm9nbW9kZXMvcnVzdC10cy1tb2RlLmVs CmluZGV4IDVjNzFhOGFkNDYxLi42YWI3ODZjNmM4MCAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9k ZXMvcnVzdC10cy1tb2RlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3J1c3QtdHMtbW9kZS5lbApA QCAtMjA0LDYgKzIwNCw0MSBAQCBydXN0LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncwogICAg ICAgKHJhd19zdHJpbmdfbGl0ZXJhbCkKICAgICAgIChzdHJpbmdfbGl0ZXJhbCldIEBmb250LWxv Y2stc3RyaW5nLWZhY2UpCiAKKyAgIDpsYW5ndWFnZSAncnVzdAorICAgOmZlYXR1cmUgJ21vZHVs ZQorICAgYCgoc2NvcGVkX2lkZW50aWZpZXIgcGF0aDogKGNyYXRlKQorICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stY29uc3RhbnQtZmFjZSkKKwor ICAgICAoc2NvcGVkX3VzZV9saXN0IHBhdGg6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWNvbnN0 YW50LWZhY2UpCisgICAgIChzY29wZWRfdXNlX2xpc3QgcGF0aDogKHNjb3BlZF9pZGVudGlmaWVy CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IChpZGVudGlmaWVyKSBAZm9udC1s b2NrLWNvbnN0YW50LWZhY2UpKQorCisgICAgICgodXNlX2RlY2xhcmF0aW9uCisgICAgICAgYXJn dW1lbnQ6IChzY29wZWRfaWRlbnRpZmllcgorICAgICAgICAgICAgICAgICAgcGF0aDogKF8pIEBm b250LWxvY2stY29uc3RhbnQtZmFjZQorICAgICAgICAgICAgICAgICAgbmFtZTogKGlkZW50aWZp ZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkKKyAgICAgICg6bWF0Y2ggIl5bQS1aXSIgQGZvbnQt bG9jay10eXBlLWZhY2UpKQorICAgICAodXNlX2RlY2xhcmF0aW9uCisgICAgICBhcmd1bWVudDog KHNjb3BlZF9pZGVudGlmaWVyCisgICAgICAgICAgICAgICAgIG5hbWU6IChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKQorCisgICAgICh1c2VfZGVjbGFyYXRpb24KKyAgICAg IGFyZ3VtZW50OiAoc2NvcGVkX2lkZW50aWZpZXIKKyAgICAgICAgICAgICAgICAgcGF0aDogKHNj b3BlZF9pZGVudGlmaWVyCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAoXykgQGZvbnQt bG9jay1jb25zdGFudC1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAoaWRlbnRp ZmllcikgQGZvbnQtbG9jay1jb25zdGFudC1mYWNlKQorICAgICAgICAgICAgICAgICBuYW1lOiAo aWRlbnRpZmllcikgQGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKKworICAgICAodXNlX2RlY2xh cmF0aW9uCisgICAgICBhcmd1bWVudDogKHNjb3BlZF91c2VfbGlzdAorICAgICAgICAgICAgICAg ICBwYXRoOiAoc2NvcGVkX2lkZW50aWZpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6 IChfKSBAZm9udC1sb2NrLWNvbnN0YW50LWZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKSkKKworICAgICAoKHVz ZV9saXN0IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICg6bWF0Y2gg Il5bQS1aXSIgQGZvbnQtbG9jay10eXBlLWZhY2UpKQorICAgICAodXNlX2xpc3QgKGlkZW50aWZp ZXIpIEBmb250LWxvY2stY29uc3RhbnQtZmFjZSkpCisKICAgIDpsYW5ndWFnZSAncnVzdAogICAg OmZlYXR1cmUgJ3R5cGUKICAgIGAoKGVudW1fdmFyaWFudCBuYW1lOiAoaWRlbnRpZmllcikgQGZv bnQtbG9jay10eXBlLWZhY2UpCkBAIC0yMTYsMjMgKzI1MSwyMSBAQCBydXN0LXRzLW1vZGUtLWZv bnQtbG9jay1zZXR0aW5ncwogICAgICAobW9kX2l0ZW0gbmFtZTogKGlkZW50aWZpZXIpIEBmb250 LWxvY2stY29uc3RhbnQtZmFjZSkKICAgICAgKHByaW1pdGl2ZV90eXBlKSBAZm9udC1sb2NrLXR5 cGUtZmFjZQogICAgICAodHlwZV9pZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZQotICAg ICAoKHNjb3BlZF9pZGVudGlmaWVyIG5hbWU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUt ZmFjZSkKLSAgICAgICg6bWF0Y2ggIl5bQS1aXSIgQGZvbnQtbG9jay10eXBlLWZhY2UpKQogICAg ICAoKHNjb3BlZF9pZGVudGlmaWVyIHBhdGg6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUt ZmFjZSkKLSAgICAgICg6bWF0Y2ggIl5bQS1aXSIgQGZvbnQtbG9jay10eXBlLWZhY2UpKQotICAg ICAoKHNjb3BlZF9pZGVudGlmaWVyCi0gICAgICAgIChzY29wZWRfaWRlbnRpZmllcgotICAgICAg ICAgcGF0aDogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkKLSAgICAgICg6bWF0 Y2ggIl5bQS1aXSIgQGZvbnQtbG9jay10eXBlLWZhY2UpKQotICAgICAoKHNjb3BlZF9pZGVudGlm aWVyCi0gICAgICAgcGF0aDogWyhpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZQotICAg ICAgICAgICAgICAoc2NvcGVkX2lkZW50aWZpZXIKLSAgICAgICAgICAgICAgIG5hbWU6IChpZGVu dGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSldKQotICAgICAgKDptYXRjaCAiXltBLVpdIiBA Zm9udC1sb2NrLXR5cGUtZmFjZSkpCi0gICAgIChzY29wZWRfdHlwZV9pZGVudGlmaWVyIHBhdGg6 IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICg6bWF0Y2gKKyAgICAg ICAiXlxcKHU4XFx8dTE2XFx8dTMyXFx8dTY0XFx8dTEyOFxcfHVzaXplXFx8aThcXHxpMTZcXHxp MzJcXHxpNjRcXHxpMTI4XFx8aXNpemVcXHxjaGFyXFx8c3RyXFwpJCIKKyAgICAgICBAZm9udC1s b2NrLXR5cGUtZmFjZSkpCisgICAgIChzY29wZWRfaWRlbnRpZmllciBwYXRoOiAoXykgQGZvbnQt bG9jay1jb25zdGFudC1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAoaWRlbnRp ZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgIChzY29wZWRfaWRlbnRpZmllciBwYXRo OiAoc2NvcGVkX2lkZW50aWZpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l OiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKKyAgICAgKHNjb3BlZF90 eXBlX2lkZW50aWZpZXIgcGF0aDogKF8pIEBmb250LWxvY2stY29uc3RhbnQtZmFjZSkKKyAgICAg KHNjb3BlZF90eXBlX2lkZW50aWZpZXIKKyAgICAgIHBhdGg6IChzY29wZWRfaWRlbnRpZmllcgor ICAgICAgICAgICAgIHBhdGg6IChfKSBAZm9udC1sb2NrLWNvbnN0YW50LWZhY2UKKyAgICAgICAg ICAgICBuYW1lOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKICAgICAg KHR5cGVfaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UKLSAgICAgKHVzZV9hc19jbGF1 c2UgYWxpYXM6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKLSAgICAgKHVzZV9s aXN0IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkpCisgICAgICh1c2VfYXNfY2xh dXNlIGFsaWFzOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQogCiAgICA6bGFu Z3VhZ2UgJ3J1c3QKICAgIDpmZWF0dXJlICdwcm9wZXJ0eQpAQCAtMzQ0LDcgKzM3Nyw4IEBAIHJ1 c3QtdHMtbW9kZQogICAgICAgICAgICAgICAgICAgKCBrZXl3b3JkIHN0cmluZykKICAgICAgICAg ICAgICAgICAgICggYXR0cmlidXRlIGJ1aWx0aW4gY29uc3RhbnQgZXNjYXBlLXNlcXVlbmNlCiAg ICAgICAgICAgICAgICAgICAgIG51bWJlciB0eXBlKQotICAgICAgICAgICAgICAgICAgKCBicmFj a2V0IGRlbGltaXRlciBlcnJvciBmdW5jdGlvbiBvcGVyYXRvciBwcm9wZXJ0eSB2YXJpYWJsZSkp KQorICAgICAgICAgICAgICAgICAgKCBicmFja2V0IGRlbGltaXRlciBlcnJvciBmdW5jdGlvbiBt b2R1bGUKKyAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgcHJvcGVydHkgdmFyaWFibGUpKSkK IAogICAgIDs7IEltZW51LgogICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtc2ltcGxlLWltZW51LXNl dHRpbmdzCi0tIAoyLjM5LjEKCg== --b1_9ASpUTGXE3j0vUPAhQXVw1Cprx4FIhj5GPJpCFKbY--