diff --git a/internal/lsp/source/folding_range.go b/internal/lsp/source/folding_range.go
index 3ef8d64..1b7cea9 100644
--- a/internal/lsp/source/folding_range.go
+++ b/internal/lsp/source/folding_range.go
@@ -62,6 +62,9 @@
 	case *ast.CaseClause:
 		// Fold from position of ":" to end.
 		start, end = n.Colon+1, n.End()
+	case *ast.CommClause:
+		// Fold from position of ":" to end.
+		start, end = n.Colon+1, n.End()
 	case *ast.CallExpr:
 		// Fold from position of "(" to position of ")".
 		start, end = n.Lparen+1, n.Rparen
@@ -117,6 +120,9 @@
 	case *ast.CaseClause:
 		// Fold from position of ":" to end.
 		start, end = n.Colon+1, n.End()
+	case *ast.CommClause:
+		// Fold from position of ":" to end.
+		start, end = n.Colon+1, n.End()
 	case *ast.FieldList:
 		// Fold lines between opening parenthesis/brace and closing parenthesis/brace.
 		if !n.Opening.IsValid() || !n.Closing.IsValid() {
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/a.go b/internal/lsp/testdata/lsp/primarymod/folding/a.go
index 43f54d5..e472a33 100644
--- a/internal/lsp/testdata/lsp/primarymod/folding/a.go
+++ b/internal/lsp/testdata/lsp/primarymod/folding/a.go
@@ -44,6 +44,19 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {
+			fmt.Println("true from x")
+		} else {
+			fmt.Println("false from x")
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/a.go.golden b/internal/lsp/testdata/lsp/primarymod/folding/a.go.golden
index 2b97014..6f71e1c 100644
--- a/internal/lsp/testdata/lsp/primarymod/folding/a.go.golden
+++ b/internal/lsp/testdata/lsp/primarymod/folding/a.go.golden
@@ -27,6 +27,8 @@
 	_ = map[string]int{<>}
 	type T struct {<>}
 	_ = T{<>}
+	x, y := make(<>), make(<>)
+	select {<>}
 	// This is a multiline comment<>
 	return `
 this string
@@ -73,6 +75,12 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:<>
+	case <-y:<>
+	default:<>
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
@@ -123,6 +131,15 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {<>} else {<>}
+	case <-y:
+		fmt.Println(<>)
+	default:
+		fmt.Println(<>)
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
@@ -177,6 +194,19 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {
+			fmt.Println(<>)
+		} else {
+			fmt.Println(<>)
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
@@ -188,7 +218,7 @@
 3:9-6:0
 10:22-11:32
 12:10-12:9
-12:20-52:0
+12:20-65:0
 13:10-24:1
 14:12-19:3
 15:12-17:2
@@ -204,7 +234,19 @@
 32:21-36:1
 37:17-41:1
 42:8-46:1
-47:32-48:30
+47:15-47:23
+47:32-47:40
+48:10-59:1
+49:18-54:3
+50:11-52:2
+51:16-51:28
+52:11-54:2
+53:16-53:29
+55:11-56:18
+56:15-56:17
+57:10-58:24
+58:15-58:23
+60:32-61:30
 
 -- foldingRange-comment-0 --
 package folding //@fold("package")
@@ -252,6 +294,19 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {
+			fmt.Println("true from x")
+		} else {
+			fmt.Println("false from x")
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment<>
 	return `
 this string
@@ -302,6 +357,19 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {
+			fmt.Println("true from x")
+		} else {
+			fmt.Println("false from x")
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
@@ -345,6 +413,9 @@
 	}
 	_ = T{<>,
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {<>
+	}
 	// This is a multiline comment<>
 	return `
 this string
@@ -391,6 +462,12 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:<>
+	case <-y:<>
+	default:<>
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
@@ -443,6 +520,17 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {<>
+		} else {<>
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
@@ -496,6 +584,19 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {
+			fmt.Println("true from x")
+		} else {
+			fmt.Println("false from x")
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment<>
 	return `
 this string
@@ -547,6 +648,19 @@
 		g: 4,
 		h: "i",
 	}
+	x, y := make(chan bool), make(chan bool)
+	select {
+	case val := <-x:
+		if val {
+			fmt.Println("true from x")
+		} else {
+			fmt.Println("false from x")
+		}
+	case <-y:
+		fmt.Println("y")
+	default:
+		fmt.Println("default")
+	}
 	// This is a multiline comment
 	// that is not a doc comment.
 	return `
