Subject: bug#67710: bug#67709: 29.1.50; [patch] missing indent rule for parameter list in csharp-ts-mode

From: Stefan Kangas <[email-masked]>
Date: Sun, 23 Feb 2025 06:02:15 +0000

Theodor Thornhill <[email-masked]> writes:

> Eli Zaretskii <[email-masked]> writes:
>
>> Ping!  Theo, could you please look into this?
>>
>
> Absolutely, thanks!
>
> Theo

Theo, did you ever get the chance to look into this?

>>> Cc: [email-masked]
>>> Date: Sat, 16 Dec 2023 13:39:58 +0200
>>> From: Eli Zaretskii <[email-masked]>
>>>
>>> > From: Jacob Leeming <[email-masked]>
>>> > Date: Fri, 8 Dec 2023 13:44:14 +0000
>>> >
>>> > >From emacs -Q:
>>> >
>>> > Evaluate this elisp to set up treesitter for csharp:
>>> >
>>> > (setq treesit-language-source-alist '((c-sharp
>>> > "https://github.com/tree-sitter/tree-sitter-c-sharp" "master" "src"))
>>> >       treesit-load-name-override-list '((c-sharp
>>> > "libtree-sitter-csharp" "tree_sitter_c_sharp"))
>>> >       major-mode-remap-alist '((csharp-mode . csharp-ts-mode)))
>>> >
>>> > Insert the following text into a csharp-ts-mode buffer:
>>> >
>>> > void ExampleFunction(
>>> >     int arg1,
>>> >   int arg2,
>>> >  int arg3,
>>> > int arg4,
>>> >     int arg5
>>> > )
>>> > {
>>> >     Console.WriteLine(arg1);
>>> > }
>>> >
>>> > Try to indent the parameters of the function with
>>> > indent-for-tab-command. Nothing will happen.
>>> >
>>> > This issue can be fixed with the following patch:
>>> >
>>> >
>>> >
>>> > diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el
>>> > index 53c52e6..8cc4e95 100644
>>> > --- a/lisp/progmodes/csharp-mode.el
>>> > +++ b/lisp/progmodes/csharp-mode.el
>>> > @@ -704,7 +704,8 @@ csharp-ts-mode--indent-rules
>>> >       ((parent-is "object_type") parent-bol csharp-ts-mode-indent-offset)
>>> >       ((parent-is "enum_body") parent-bol csharp-ts-mode-indent-offset)
>>> >       ((parent-is "arrow_function") parent-bol csharp-ts-mode-indent-offset)
>>> > -     ((parent-is "parenthesized_expression") parent-bol
>>> > csharp-ts-mode-indent-offset))))
>>> > +     ((parent-is "parenthesized_expression") parent-bol
>>> > csharp-ts-mode-indent-offset)
>>> > +     ((parent-is "parameter_list") parent-bol csharp-ts-mode-indent-offset))))
>>> >
>>> >  (defvar csharp-ts-mode--keywords
>>> >    '("using" "namespace" "class" "if" "else" "throw" "new" "for"
>>>
>>> Theo, any comments?  Should I install this?
>>>
>>> Thanks.
>>>
>>>
>>>
>>>