]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix c++-ts-mode indentation for templace (bug#72263)
authorYuan Fu <casouri@gmail.com>
Thu, 1 Aug 2024 06:45:26 +0000 (23:45 -0700)
committerEshel Yaron <me@eshelyaron.com>
Tue, 6 Aug 2024 09:53:51 +0000 (11:53 +0200)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Add rule for template.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add test.

(cherry picked from commit cb421286d2e9834d90d29288c932a6c6e03a555f)

lisp/progmodes/c-ts-mode.el
test/lisp/progmodes/c-ts-mode-resources/indent.erts

index b2fe847d306e6a20a016756c11484d436ca41271..ad3e99b5d1f81f7f7c6eb9d6363f937ed23373f4 100644 (file)
@@ -466,7 +466,8 @@ MODE is either `c' or `cpp'."
            ,@(when (eq mode 'cpp)
                '(((node-is "access_specifier") parent-bol 0)
                  ;; Indent the body of namespace definitions.
-                 ((parent-is "declaration_list") parent-bol c-ts-mode-indent-offset)))
+                 ((parent-is "declaration_list") parent-bol c-ts-mode-indent-offset)
+                 ((parent-is "template_declaration") parent-bol 0)))
 
 
            ;; int[5] a = { 0, 0, 0, 0 };
index 24b244c16115fd58ba7ddb4166c4b7d36e9a6415..599173832b50619aaf3cbfaa464f6493dcdc9c1d 100644 (file)
@@ -458,6 +458,34 @@ namespace test {
 }
 =-=-=
 
+Name: Namespace and template (bug#72263)
+
+=-=
+namespace A {
+
+T myfunction1(const char *fname)
+{
+}
+
+template <class T>
+T myfunction2(const char *fname)
+{
+}
+}
+=-=
+namespace A {
+
+  T myfunction1(const char *fname)
+  {
+  }
+
+  template <class T>
+  T myfunction2(const char *fname)
+  {
+  }
+}
+=-=-=
+
 Code:
   (lambda ()
     (c-ts-mode)