Subject: bug#61238: closed (Re: bug#61238: [PATCH] Fix go-ts-mode type switch and select case blocks indentation)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 10 Sep 2023 17:19:02 +0000

Your bug report

#61238: [PATCH] Fix go-ts-mode type switch and select case blocks indentation

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
61238: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61238
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#61238: [PATCH] Fix go-ts-mode type switch and select case blocks indentation
From: Stefan Kangas <[email-masked]>
To: Theodor Thornhill <[email-masked]>
Cc: [email-masked], [email-masked], Davide Masserut <[email-masked]>
Date: Sun, 10 Sep 2023 10:18:34 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Theodor Thornhill <[email-masked]> writes:

> Thanks! I've commited and pushed this to the emacs-29 branch.  I made a
> small tweak to the commit message and fixed this:
>
> (ert-deftest go-ts-mode-test-indentation ()
>   (skip-unless (treesit-ready-p 'c))
>   (ert-test-erts-file (ert-resource-file "indent.erts")))

It seems like this issue was fixed, but it was left open in the bug
tracker.  I'm therefore closing it now.

Please remember to close bug reports when they are fixed.

Subject: [PATCH] Fix go-ts-mode type switch and select case blocks indentation
From: Davide Masserut <[email-masked]>
To: [email-masked]
Date: Thu, 02 Feb 2023 21:37:06 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Tags: patch

This patch add indentation for Go type switch and select case 
blocks.

Current behavior
```
	var x any
	switch x.(type) {
	case int:
	println(x)
	}

	var c chan int
	select {
	case x := <-c:
	println(x)
	}
```

Correct behavior
```
	var x any
	switch x.(type) {
	case int:
		println(x)
	}

	var c chan int
	select {
	case x := <-c:
		println(x)
	}
```

In GNU Emacs 30.0.50 (build 14, x86_64-pc-linux-gnu, GTK+ Version
 3.24.36, cairo version 1.17.6) of 2023-02-02 built on T480s
Repository revision: bfd338aad9d1e6bf898fc19d23e1a5ca4e696316
Repository branch: master
System Description: Arch Linux

Configured using:
 'configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib
 --localstatedir=/var --with-pgtk --with-native-compilation
 'CFLAGS=-march=native -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -g
 -ffile-prefix-map=/home/davide/src/emacs-mssdvd-git/src=/usr/src/debug/emacs-mssdvd-git'
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
 'CXXFLAGS=-march=native -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection 
 -Wp,-D_GLIBCXX_ASSERTIONS -g
 -ffile-prefix-map=/home/davide/src/emacs-mssdvd-git/src=/usr/src/debug/emacs-mssdvd-git''
>From b4d6ed0dcb2536d6345e38edd7fc3ae1661d99b7 Mon Sep 17 00:00:00 2001
From: Davide Masserut <[email-masked]>
Date: Thu, 2 Feb 2023 21:00:02 +0100
Subject: [PATCH] Fix go-ts-mode type switch and select case blocks indentation

* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add
indentation for type switch and select case blocks
---
 lisp/progmodes/go-ts-mode.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el
index 5f3e1ea3e68..0270b92445d 100644
--- a/lisp/progmodes/go-ts-mode.el
+++ b/lisp/progmodes/go-ts-mode.el
@@ -72,6 +72,7 @@ go-ts-mode--indent-rules
      ((node-is "labeled_statement") no-indent)
      ((parent-is "argument_list") parent-bol go-ts-mode-indent-offset)
      ((parent-is "block") parent-bol go-ts-mode-indent-offset)
+     ((parent-is "communication_case") parent-bol go-ts-mode-indent-offset)
      ((parent-is "const_declaration") parent-bol go-ts-mode-indent-offset)
      ((parent-is "default_case") parent-bol go-ts-mode-indent-offset)
      ((parent-is "expression_case") parent-bol go-ts-mode-indent-offset)
@@ -82,6 +83,7 @@ go-ts-mode--indent-rules
      ((parent-is "labeled_statement") parent-bol go-ts-mode-indent-offset)
      ((parent-is "literal_value") parent-bol go-ts-mode-indent-offset)
      ((parent-is "parameter_list") parent-bol go-ts-mode-indent-offset)
+     ((parent-is "type_case") parent-bol go-ts-mode-indent-offset)
      ((parent-is "type_spec") parent-bol go-ts-mode-indent-offset)
      ((parent-is "var_declaration") parent-bol go-ts-mode-indent-offset)
      (no-node parent-bol 0)))
-- 
2.39.1