From 2c727ce4e9c550e6b932a2bb04100422dbd7bfab Mon Sep 17 00:00:00 2001
From: Bhsd <55071315+bhsd-harry@users.noreply.github.com>
Date: Sat, 30 Nov 2024 00:33:13 +0800
Subject: [PATCH] fix(folding): section folding range

---
 CHANGELOG.md          | 1 +
 package.json          | 2 +-
 server/src/folding.ts | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f86897f..108c149 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,3 +5,4 @@
 **Fixed**
 
 - Detection of `<ref>` definitions with non-empty content
+- Folding range for sections
diff --git a/package.json b/package.json
index 41b2bc1..90e08a6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "vscode-extension-wikiparser",
-	"version": "1.0.1",
+	"version": "1.0.2",
 	"description": "Language server extension for MediaWiki Wikitext that supports linting, autocomplete, and more.",
 	"displayName": "WikiParser Language Server",
 	"categories": [
diff --git a/server/src/folding.ts b/server/src/folding.ts
index b5feb80..f16ec7e 100644
--- a/server/src/folding.ts
+++ b/server/src/folding.ts
@@ -23,7 +23,7 @@ async function provide(
 	for (const token of tokens) {
 		const index = token.getAbsoluteIndex(),
 			{top} = root.posFromIndex(index)!,
-			lines = String(token).replace(/\n$/u, '').split('\n');
+			lines = String(token).replace(/(?<!\n)\n+$/u, '').split('\n');
 		if (token.type === 'heading') {
 			const {level, firstChild} = token;
 			if (symbol) {