unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
@ 2024-12-31 16:01 Jacob Faibussowitsch
  2025-01-02  3:28 ` Yuan Fu
  0 siblings, 1 reply; 14+ messages in thread
From: Jacob Faibussowitsch @ 2024-12-31 16:01 UTC (permalink / raw)
  To: 75226

[-- Attachment #1: Type: text/plain, Size: 149 bytes --]

C++ ts-mode is missing “alignof” as a builtin keyword like sizeof.

Best Regards,

Jacob Faibussowitsch
(Jacob Fai - booss - oh - vitch)


[-- Attachment #2: Type: text/html, Size: 734 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2024-12-31 16:01 bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword Jacob Faibussowitsch
@ 2025-01-02  3:28 ` Yuan Fu
  2025-01-02  5:06   ` Stefan Kangas
  2025-01-02  6:41   ` Eli Zaretskii
  0 siblings, 2 replies; 14+ messages in thread
From: Yuan Fu @ 2025-01-02  3:28 UTC (permalink / raw)
  To: Jacob Faibussowitsch; +Cc: 75226



> On Dec 31, 2024, at 8:01 AM, Jacob Faibussowitsch <jacob.fai@gmail.com> wrote:
> 
> C++ ts-mode is missing “alignof” as a builtin keyword like sizeof.
> 
> Best Regards,
> 
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> 

Thanks for reporting this. It seems tree-sitter-c/cpp supports '__alignof__', '__alignof', '_alignof', 'alignof', ‘_Alignof’, I can add all of them as keywords. The feature is added in tree-sitter-c in Aug 9, 2023 [1], and appears in v0.20.5.

Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?

[1] https://github.com/tree-sitter/tree-sitter-c/commit/8e919ab298b6e4d05ee29b10482de4fcfb075074

Yuan




^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-02  3:28 ` Yuan Fu
@ 2025-01-02  5:06   ` Stefan Kangas
  2025-01-02  6:41   ` Eli Zaretskii
  1 sibling, 0 replies; 14+ messages in thread
From: Stefan Kangas @ 2025-01-02  5:06 UTC (permalink / raw)
  To: Yuan Fu, Jacob Faibussowitsch; +Cc: 75226

Yuan Fu <casouri@gmail.com> writes:

> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30
> and have this change queued for Emacs 30.2? Or should I wait a bit?

I'm not Eli, but to have this in Emacs 30.2, you need to wait until
Emacs 30.1 is released first.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-02  3:28 ` Yuan Fu
  2025-01-02  5:06   ` Stefan Kangas
@ 2025-01-02  6:41   ` Eli Zaretskii
  2025-01-02 14:03     ` Jacob Faibussowitsch
  2025-01-03  8:50     ` Yuan Fu
  1 sibling, 2 replies; 14+ messages in thread
From: Eli Zaretskii @ 2025-01-02  6:41 UTC (permalink / raw)
  To: Yuan Fu; +Cc: 75226, jacob.fai

> Cc: 75226@debbugs.gnu.org
> From: Yuan Fu <casouri@gmail.com>
> Date: Wed, 1 Jan 2025 19:28:35 -0800
> 
> 
> 
> > On Dec 31, 2024, at 8:01 AM, Jacob Faibussowitsch <jacob.fai@gmail.com> wrote:
> > 
> > C++ ts-mode is missing “alignof” as a builtin keyword like sizeof.
> > 
> > Best Regards,
> > 
> > Jacob Faibussowitsch
> > (Jacob Fai - booss - oh - vitch)
> > 
> 
> Thanks for reporting this. It seems tree-sitter-c/cpp supports '__alignof__', '__alignof', '_alignof', 'alignof', ‘_Alignof’, I can add all of them as keywords. The feature is added in tree-sitter-c in Aug 9, 2023 [1], and appears in v0.20.5.
> 
> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?

If this just adds a bunch of strings to c-ts-mode--keywords, it's okay
to add them on emacs-30.

Thanks.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-02  6:41   ` Eli Zaretskii
@ 2025-01-02 14:03     ` Jacob Faibussowitsch
  2025-01-02 15:47       ` Eli Zaretskii
  2025-01-03  8:50     ` Yuan Fu
  1 sibling, 1 reply; 14+ messages in thread
From: Jacob Faibussowitsch @ 2025-01-02 14:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Yuan Fu, 75226

[-- Attachment #1: Type: text/plain, Size: 1190 bytes --]

Should also do `alignas` and friends while you’re at it. I noticed it is missing from `c-ts-mode--keywords` as well.

Best Regards,

Jacob Faibussowitsch
(Jacob Fai - booss - oh - vitch)

> On Jan 2, 2025, at 1:41 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> Cc: 75226@debbugs.gnu.org
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Wed, 1 Jan 2025 19:28:35 -0800
>> 
>> 
>> 
>>> On Dec 31, 2024, at 8:01 AM, Jacob Faibussowitsch <jacob.fai@gmail.com> wrote:
>>> 
>>> C++ ts-mode is missing “alignof” as a builtin keyword like sizeof.
>>> 
>>> Best Regards,
>>> 
>>> Jacob Faibussowitsch
>>> (Jacob Fai - booss - oh - vitch)
>>> 
>> 
>> Thanks for reporting this. It seems tree-sitter-c/cpp supports '__alignof__', '__alignof', '_alignof', 'alignof', ‘_Alignof’, I can add all of them as keywords. The feature is added in tree-sitter-c in Aug 9, 2023 [1], and appears in v0.20.5.
>> 
>> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?
> 
> If this just adds a bunch of strings to c-ts-mode--keywords, it's okay
> to add them on emacs-30.
> 
> Thanks.


[-- Attachment #2: Type: text/html, Size: 4742 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-02 14:03     ` Jacob Faibussowitsch
@ 2025-01-02 15:47       ` Eli Zaretskii
  0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2025-01-02 15:47 UTC (permalink / raw)
  To: Jacob Faibussowitsch; +Cc: casouri, 75226

> From: Jacob Faibussowitsch <jacob.fai@gmail.com>
> Date: Thu, 2 Jan 2025 09:03:26 -0500
> Cc: Yuan Fu <casouri@gmail.com>,
>  75226@debbugs.gnu.org
> 
> Should also do `alignas` and friends while you’re at it. I noticed it is missing from `c-ts-mode--keywords` as
> well.

The keywords are all explicit in the grammar's JS source, so how about
check them all, while we are at it?





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-02  6:41   ` Eli Zaretskii
  2025-01-02 14:03     ` Jacob Faibussowitsch
@ 2025-01-03  8:50     ` Yuan Fu
  2025-01-03 11:38       ` Eli Zaretskii
  1 sibling, 1 reply; 14+ messages in thread
From: Yuan Fu @ 2025-01-03  8:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 75226, Jacob Faibussowitsch



> On Jan 1, 2025, at 10:41 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> Cc: 75226@debbugs.gnu.org
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Wed, 1 Jan 2025 19:28:35 -0800
>> 
>> 
>> 
>>> On Dec 31, 2024, at 8:01 AM, Jacob Faibussowitsch <jacob.fai@gmail.com> wrote:
>>> 
>>> C++ ts-mode is missing “alignof” as a builtin keyword like sizeof.
>>> 
>>> Best Regards,
>>> 
>>> Jacob Faibussowitsch
>>> (Jacob Fai - booss - oh - vitch)
>>> 
>> 
>> Thanks for reporting this. It seems tree-sitter-c/cpp supports '__alignof__', '__alignof', '_alignof', 'alignof', ‘_Alignof’, I can add all of them as keywords. The feature is added in tree-sitter-c in Aug 9, 2023 [1], and appears in v0.20.5.
>> 
>> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?
> 
> If this just adds a bunch of strings to c-ts-mode--keywords, it's okay
> to add them on emacs-30.

Not quite, right now emacs-30’s c-ts-mode works with grammar as far back as v0.19.0 [1]. If we just add the keywords, c-ts-mode wouldn’t work with grammar v0.20.4 and earlier. So I’m going to add the new keywords with a check, which disables the new keywords if grammar doesn’t recognize them. Also there’re many missing keywords, none of which I have seen before :-), I need time to go over them and see how are they supposed by be fontified (keyword face or something else).

So let’s wait for 30.2.

[1] It might work with even earlier versions but I didn’t test, v0.19.0 (4 years ago) is the earliest version that still has compatible LANGUAGE_VERSION (13) with the latest tree-sitter lib.

Yuan







^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-03  8:50     ` Yuan Fu
@ 2025-01-03 11:38       ` Eli Zaretskii
  2025-01-04  7:34         ` Yuan Fu
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2025-01-03 11:38 UTC (permalink / raw)
  To: Yuan Fu; +Cc: 75226, jacob.fai

> From: Yuan Fu <casouri@gmail.com>
> Date: Fri, 3 Jan 2025 00:50:46 -0800
> Cc: Jacob Faibussowitsch <jacob.fai@gmail.com>,
>  75226@debbugs.gnu.org
> 
> > On Jan 1, 2025, at 10:41 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> > 
> >> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?
> > 
> > If this just adds a bunch of strings to c-ts-mode--keywords, it's okay
> > to add them on emacs-30.
> 
> Not quite, right now emacs-30’s c-ts-mode works with grammar as far back as v0.19.0 [1]. If we just add the keywords, c-ts-mode wouldn’t work with grammar v0.20.4 and earlier. So I’m going to add the new keywords with a check, which disables the new keywords if grammar doesn’t recognize them. Also there’re many missing keywords, none of which I have seen before :-), I need time to go over them and see how are they supposed by be fontified (keyword face or something else).
> 
> So let’s wait for 30.2.

If so, please install on master, and let's consider backporting it to
the emacs-30 branch after 30.1 is released.

Thanks.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-03 11:38       ` Eli Zaretskii
@ 2025-01-04  7:34         ` Yuan Fu
  2025-01-08  3:09           ` Yuan Fu
  0 siblings, 1 reply; 14+ messages in thread
From: Yuan Fu @ 2025-01-04  7:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 75226, Jacob Faibussowitsch



> On Jan 3, 2025, at 3:38 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Fri, 3 Jan 2025 00:50:46 -0800
>> Cc: Jacob Faibussowitsch <jacob.fai@gmail.com>,
>> 75226@debbugs.gnu.org
>> 
>>> On Jan 1, 2025, at 10:41 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>>> 
>>>> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?
>>> 
>>> If this just adds a bunch of strings to c-ts-mode--keywords, it's okay
>>> to add them on emacs-30.
>> 
>> Not quite, right now emacs-30’s c-ts-mode works with grammar as far back as v0.19.0 [1]. If we just add the keywords, c-ts-mode wouldn’t work with grammar v0.20.4 and earlier. So I’m going to add the new keywords with a check, which disables the new keywords if grammar doesn’t recognize them. Also there’re many missing keywords, none of which I have seen before :-), I need time to go over them and see how are they supposed by be fontified (keyword face or something else).
>> 
>> So let’s wait for 30.2.
> 
> If so, please install on master, and let's consider backporting it to
> the emacs-30 branch after 30.1 is released.
> 
> Thanks.

Sounds good.

Yuan




^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-04  7:34         ` Yuan Fu
@ 2025-01-08  3:09           ` Yuan Fu
  2025-01-08 12:49             ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Yuan Fu @ 2025-01-08  3:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 75226, Jacob Faibussowitsch



> On Jan 3, 2025, at 11:34 PM, Yuan Fu <casouri@gmail.com> wrote:
> 
> 
> 
>> On Jan 3, 2025, at 3:38 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> 
>>> From: Yuan Fu <casouri@gmail.com>
>>> Date: Fri, 3 Jan 2025 00:50:46 -0800
>>> Cc: Jacob Faibussowitsch <jacob.fai@gmail.com>,
>>> 75226@debbugs.gnu.org
>>> 
>>>> On Jan 1, 2025, at 10:41 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>>>> 
>>>>> Eli, what’s the status of Emacs 30 right now? Can I push to emacs-30 and have this change queued for Emacs 30.2? Or should I wait a bit?
>>>> 
>>>> If this just adds a bunch of strings to c-ts-mode--keywords, it's okay
>>>> to add them on emacs-30.
>>> 
>>> Not quite, right now emacs-30’s c-ts-mode works with grammar as far back as v0.19.0 [1]. If we just add the keywords, c-ts-mode wouldn’t work with grammar v0.20.4 and earlier. So I’m going to add the new keywords with a check, which disables the new keywords if grammar doesn’t recognize them. Also there’re many missing keywords, none of which I have seen before :-), I need time to go over them and see how are they supposed by be fontified (keyword face or something else).
>>> 
>>> So let’s wait for 30.2.
>> 
>> If so, please install on master, and let's consider backporting it to
>> the emacs-30 branch after 30.1 is released.
>> 
>> Thanks.
> 
> Sounds good.
> 
> Yuan

I found that both c++-mode and c++-ts-mode fontifies C++ alternative operators like and_eq, xor, etc as keywords. Maybe we should fontify them in operator face (added in Emacs 29) instead?

Yuan







^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-08  3:09           ` Yuan Fu
@ 2025-01-08 12:49             ` Eli Zaretskii
  2025-01-08 13:58               ` Jacob Faibussowitsch
  2025-01-08 14:49               ` Alan Mackenzie
  0 siblings, 2 replies; 14+ messages in thread
From: Eli Zaretskii @ 2025-01-08 12:49 UTC (permalink / raw)
  To: Yuan Fu, Alan Mackenzie; +Cc: 75226, jacob.fai

> From: Yuan Fu <casouri@gmail.com>
> Date: Tue, 7 Jan 2025 19:09:40 -0800
> Cc: Jacob Faibussowitsch <jacob.fai@gmail.com>,
>  75226@debbugs.gnu.org
> 
> I found that both c++-mode and c++-ts-mode fontifies C++ alternative operators like and_eq, xor, etc as keywords. Maybe we should fontify them in operator face (added in Emacs 29) instead?

What do other editors do?

Alan, WDYT about this?





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-08 12:49             ` Eli Zaretskii
@ 2025-01-08 13:58               ` Jacob Faibussowitsch
  2025-01-08 14:49               ` Alan Mackenzie
  1 sibling, 0 replies; 14+ messages in thread
From: Jacob Faibussowitsch @ 2025-01-08 13:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Alan Mackenzie, Yuan Fu, 75226

[-- Attachment #1: Type: text/plain, Size: 1066 bytes --]

A good rule of thumb for this could be: if you can define an “operator” overload for something, then it is an operator and should be fontified as such.

Some examples:

1. `&&` or `and`, can define `operator &&()` or `operator and()` -> operator face.
2. `and_eq` or `&=`, can operator &=()` or `operator and_eq()` -> operator face.
3. `for`, cannot define `operator for()` -> keyword face.
4. `while`, cannot define `operator while()` -> keyword face. 

Just my pair of pennies...

Best Regards,

Jacob Faibussowitsch
(Jacob Fai - booss - oh - vitch)

> On Jan 8, 2025, at 7:49 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Tue, 7 Jan 2025 19:09:40 -0800
>> Cc: Jacob Faibussowitsch <jacob.fai@gmail.com>,
>> 75226@debbugs.gnu.org
>> 
>> I found that both c++-mode and c++-ts-mode fontifies C++ alternative operators like and_eq, xor, etc as keywords. Maybe we should fontify them in operator face (added in Emacs 29) instead?
> 
> What do other editors do?
> 
> Alan, WDYT about this?


[-- Attachment #2: Type: text/html, Size: 1983 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-08 12:49             ` Eli Zaretskii
  2025-01-08 13:58               ` Jacob Faibussowitsch
@ 2025-01-08 14:49               ` Alan Mackenzie
  2025-01-08 17:12                 ` Dmitry Gutov
  1 sibling, 1 reply; 14+ messages in thread
From: Alan Mackenzie @ 2025-01-08 14:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: acm, Yuan Fu, 75226, jacob.fai

Hello, Eli and Jacob.

On Wed, Jan 08, 2025 at 14:49:50 +0200, Eli Zaretskii wrote:
> > From: Yuan Fu <casouri@gmail.com>
> > Date: Tue, 7 Jan 2025 19:09:40 -0800
> > Cc: Jacob Faibussowitsch <jacob.fai@gmail.com>,
> >  75226@debbugs.gnu.org

> > I found that both c++-mode and c++-ts-mode fontifies C++ alternative
> > operators like and_eq, xor, etc as keywords. Maybe we should fontify
> > them in operator face (added in Emacs 29) instead?

> What do other editors do?

> Alan, WDYT about this?

For me personally, another face for "alphabetic operators" would
come dangerously close to angry fruit salad.

and_eq, xor, etc. _are_ keywords, so I think it makes sense to fontify
them as such.  The keywords in C++ could be divided into several
categories, including alphabetic operators, and to give each category
its own face would, I think, overload the typical user, who wouldn't
instantly grasp what all the faces meant.  This would be
counterproductive.  I don't think it makes too much sense to single out
just one category of keywords for special treatment.

Currently, C++ Mode has just two faces for these things:
font-lock-keyword-face for alphabetic ones, and the default-face for
those consisting of symbol characters like =, +, ;, .....  This is
adequate, probably, for someone whose native language uses a Latin
script.  Maybe users of other languages see things differently.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword
  2025-01-08 14:49               ` Alan Mackenzie
@ 2025-01-08 17:12                 ` Dmitry Gutov
  0 siblings, 0 replies; 14+ messages in thread
From: Dmitry Gutov @ 2025-01-08 17:12 UTC (permalink / raw)
  To: Alan Mackenzie, Eli Zaretskii; +Cc: Yuan Fu, 75226, jacob.fai

On 08/01/2025 16:49, Alan Mackenzie wrote:
>>> I found that both c++-mode and c++-ts-mode fontifies C++ alternative
>>> operators like and_eq, xor, etc as keywords. Maybe we should fontify
>>> them in operator face (added in Emacs 29) instead?
>> What do other editors do?
>> Alan, WDYT about this?
> For me personally, another face for "alphabetic operators" would
> come dangerously close to angry fruit salad.

One of the benefits of the current setup is that font-lock-operator-face 
by default just inherits the attributes from the 'default' face.

But custom themes (and individual users) can add distinction by 
customizing this face.





^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-01-08 17:12 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-31 16:01 bug#75226: [31.0.50] C++ ts-mode missing "alignof" as keyword Jacob Faibussowitsch
2025-01-02  3:28 ` Yuan Fu
2025-01-02  5:06   ` Stefan Kangas
2025-01-02  6:41   ` Eli Zaretskii
2025-01-02 14:03     ` Jacob Faibussowitsch
2025-01-02 15:47       ` Eli Zaretskii
2025-01-03  8:50     ` Yuan Fu
2025-01-03 11:38       ` Eli Zaretskii
2025-01-04  7:34         ` Yuan Fu
2025-01-08  3:09           ` Yuan Fu
2025-01-08 12:49             ` Eli Zaretskii
2025-01-08 13:58               ` Jacob Faibussowitsch
2025-01-08 14:49               ` Alan Mackenzie
2025-01-08 17:12                 ` Dmitry Gutov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).