From 63f341ae5cc5783c7a4c0fb087f3d15a802586d2 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Wed, 3 Dec 2025 12:39:53 -0800
Subject: [PATCH 1/3] test
---
.../foldingRangeJSXPropertyAccess_test.go | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go
diff --git a/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go b/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go
new file mode 100644
index 0000000000..dd75c7dc70
--- /dev/null
+++ b/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go
@@ -0,0 +1,26 @@
+package fourslash_test
+
+import (
+ "testing"
+
+ "github.com/microsoft/typescript-go/internal/fourslash"
+ "github.com/microsoft/typescript-go/internal/testutil"
+)
+
+func TestFoldingRangeJSXPropertyAccess(t *testing.T) {
+ t.Parallel()
+
+ defer testutil.RecoverAndFail(t, "Panic on fourslash test")
+ const content = `// @jsx: preserve
+// @Filename: /a.tsx
+ const Components = {
+ Nested: () => null
+};
+
+export const Test = () => {
+ return ;
+};`
+ f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
+ defer done()
+ f.VerifyOutliningSpans(t)
+}
From 406998b4fff20aafb68918c1d0e015cf9d03bd4e Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Wed, 3 Dec 2025 12:40:24 -0800
Subject: [PATCH 2/3] Fix bug
---
internal/ls/folding.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/internal/ls/folding.go b/internal/ls/folding.go
index d37548c7c3..ecd819d635 100644
--- a/internal/ls/folding.go
+++ b/internal/ls/folding.go
@@ -430,7 +430,7 @@ func spanForJSXElement(node *ast.Node, sourceFile *ast.SourceFile, l *LanguageSe
if node.Kind == ast.KindJsxElement {
jsxElement := node.AsJsxElement()
textRange := l.createLspRangeFromBounds(astnav.GetStartOfNode(jsxElement.OpeningElement, sourceFile, false /*includeJSDoc*/), jsxElement.ClosingElement.End(), sourceFile)
- tagName := jsxElement.OpeningElement.TagName().Text()
+ tagName := scanner.GetTextOfNode(jsxElement.OpeningElement.TagName())
bannerText := "<" + tagName + ">..." + tagName + ">"
return createFoldingRange(textRange, "", bannerText)
}
From f189f5ba36c1c63e27d03cf1e94cba6c33c8fb7d Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Wed, 3 Dec 2025 12:43:45 -0800
Subject: [PATCH 3/3] test
---
.../tests/foldingRangeJSXPropertyAccess_test.go | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go b/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go
index dd75c7dc70..b2ba20c90e 100644
--- a/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go
+++ b/internal/fourslash/tests/foldingRangeJSXPropertyAccess_test.go
@@ -13,13 +13,13 @@ func TestFoldingRangeJSXPropertyAccess(t *testing.T) {
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
const content = `// @jsx: preserve
// @Filename: /a.tsx
- const Components = {
+const Components =[| {
Nested: () => null
-};
+}|];
-export const Test = () => {
- return ;
-};`
+export const Test = () =>[| {
+ return [||];
+}|];`
f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
defer done()
f.VerifyOutliningSpans(t)