GNU bug report logs - #72263
31.0.50; Wrong indentation c++-ts-mode

Previous Next

Package: emacs;

Reported by: Ergus <spacibba <at> aol.com>

Date: Wed, 24 Jul 2024 00:03:02 UTC

Severity: normal

Found in version 31.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ergus <spacibba <at> aol.com>, Yuan Fu <casouri <at> gmail.com>
Cc: 72263 <at> debbugs.gnu.org
Subject: bug#72263: 31.0.50; Wrong indentation c++-ts-mode
Date: Thu, 25 Jul 2024 10:29:47 +0300
> Date: Wed, 24 Jul 2024 02:02:33 +0200
> From:  Ergus via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> When using c++-ts-mode there is an indentation issue apparently related
> with namespaces+templates.
> 
> c-ts-mode-indent-style 'linux (but with 'gnu also happens)
> 
> ```
> namespace A {
> 
> 	T myfunction1(const char *fname)
> 	{
> 	}
> 
> 	template <class T>
> T myfunction2(const char *fname)
> {
> }
> 
> }
> ```
> 
> The myfunction2 may be indented as expected, but it is not.
> 
> The explorer shows:
> 
> ```
> (translation_unit
>  (namespace_definition namespace name: (namespace_identifier)
>   body: 
>    (declaration_list {
>     (function_definition type: (primitive_type)
>      declarator: 
>       (function_declarator declarator: (identifier)
>        parameters: 
> 	(parameter_list (
> 	 (parameter_declaration
> 	  (type_qualifier const)
> 	  type: (primitive_type)
> 	  declarator: (pointer_declarator * declarator: (identifier)))
> 	 )))
>      body: (compound_statement { }))
>     (template_declaration template
>      parameters: 
>       (template_parameter_list <
>        (type_parameter_declaration class (type_identifier))
>        >)
>      (function_definition type: (type_identifier)
>       declarator: 
>        (function_declarator declarator: (identifier)
> 	parameters: 
> 	 (parameter_list (
> 	  (parameter_declaration
> 	   (type_qualifier const)
> 	   type: (primitive_type)
> 	   declarator: (pointer_declarator * declarator: (identifier)))
> 	  )))
>       body: (compound_statement { })))
>     })))
> ```

Yuan, can you take a look, please?




This bug report was last modified 337 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.