Subject: Re: bug#61541: 30.0.50; Wrong indentarion in csharp-mode

From: Ergus <[email-masked]>
Date: Fri, 17 Feb 2023 22:43:46 +0100

On Fri, Feb 17, 2023 at 10:06:50PM +0100, Jostein Kjï¿½nigsen wrote:
>2/17/23 20:28, Theodor Thornhill wrote:
>>Ergus <[email-masked]> writes:
>>
>>>Hi:
>>>
>>>I just found that this indentations are wrong in csharp mode:
>>>
>>>// wrong
>>>new myNamespace.myClass
>>>{
>>>     Name1 = x.Value, // defun-block-intro
>>>	var2 = 2     // statement-cont
>>>	}            // statement-cont
>>>
>>>
>>>The problem seems to be related with the dot (.) in the new, because
>>>this variant indents correctly:
>>>
>>>// right
>>>new myClass
>>>{
>>>     Name1 = x.Value,   // brace-list-intro
>>>     var2 = 2           // brace-list-entry
>>>}                      // brace-list-close
>>>
>>>
>>>csharp-ts-mode is doing it right BTW.
>>>
>>Hi!
>>
>>Yeah, this is one of the harder issues iirc, and one of the ones that
>>made us move to tree-sitter in csharp-mode in the first place.
>>
>>What do you think Jostein?
>>
>>Patches welcome!
>>
>>Theo
>>
>First of all: Thanks for a detailed bug-report.
>
>Then for the bad news: I may be missing something here. I'm on the 
>latest revision of the emacs-29 branch, and I really can't reproduce 
>at all.
>
>I've tried typing out the concrete code-samples above, and I've tried 
>copy-pasting them.
>
>No matter what I do, I cannot reproduce the behaviour outlined above.
>
>Ergus: Could you come up with a even more complete example?
>
>I mean... If I can't reproduce, I definitely won't be able to come up 
>with a patch.
>
>--
>Jostein
>

Hi Jostein:

I just do:

emacs -Q /tmp/main.cs

Then pasted (or write) the code snippet shown in the example, and
re-indent the buffer:

I get this:

new myNamespace.myClass
{
     Name1 = 1,
         Name2 =2
         }

Exactly like in the example C-c C-o shows the same than in the
example. Even the fontification is wrong.

If I remove the dot like this myNamespacemyClass the fontification and
indentation is fixed immediately.

I am using the master branch (emacs-version = 30.0.50) tomorrow I can
try to reproduce the issue on emacs-29 branch, but I have to build it.

Best,
Ergus