From 83008e006e2faec48d831c8181a4c174d000e607 Mon Sep 17 00:00:00 2001
From: Sainan <63328889+Sainan@users.noreply.github.com>
Date: Fri, 10 Oct 2025 16:12:36 +0200
Subject: [PATCH 1/2] Handle inline repeat until indentation
---
Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences | 2 +-
language-config.json | 2 +-
test.js | 3 +++
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences b/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
index 157eeac..7eb11d1 100644
--- a/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
+++ b/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
@@ -7,7 +7,7 @@
increaseIndentPattern
- (^\s*\$?(?!declare\s+function\b)\b((local)?[\s\w=]+)?\b(function(?!\s*\([^)]*\)\s*:)|repeat|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\b((?!\bend\b).)*$|^.*\b(do|then)\b((?!\bend\b).)*$|^.*\{((?!\}).)*$)
+ (^\s*\$?(?!declare\s+function\b)\b((local)?[\s\w=]+)?\b(function(?!\s*\([^)]*\)\s*:)|repeat(?![^\n]*\buntil\b)|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\b((?!\bend\b).)*$|^.*\b(do|then)\b((?!\bend\b).)*$|^.*\{((?!\}).)*$)
decreaseIndentPattern
(^\s*\$?\b(elsei|elseif|else|catch|pluto_catch|end|until)\b.*$|^((?!\{).)*\}\;?.*$)
diff --git a/language-config.json b/language-config.json
index 8f81179..961301b 100644
--- a/language-config.json
+++ b/language-config.json
@@ -5,7 +5,7 @@
},
// Keep in sync with Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
"indentationRules": {
- "increaseIndentPattern": "(^\\s*\\$?(?!declare\\s+function\\b)\\b((local)?[\\s\\w=]+)?\\b(function(?!\\s*\\([^)]*\\)\\s*:)|repeat|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\\b((?!\\bend\\b).)*$|^.*\\b(do|then)\\b((?!\\bend\\b).)*$|^.*\\{((?!\\}).)*$)",
+ "increaseIndentPattern": "(^\\s*\\$?(?!declare\\s+function\\b)\\b((local)?[\\s\\w=]+)?\\b(function(?!\\s*\\([^)]*\\)\\s*:)|repeat(?![^\\n]*\\buntil\\b)|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\\b((?!\\bend\\b).)*$|^.*\\b(do|then)\\b((?!\\bend\\b).)*$|^.*\\{((?!\\}).)*$)",
"decreaseIndentPattern": "(^\\s*\\$?\\b(elsei|elseif|else|catch|pluto_catch|end|until)\\b.*$|^((?!\\{).)*\\}\\;?.*$)"
}
}
diff --git a/test.js b/test.js
index 2d15767..cc32b9a 100644
--- a/test.js
+++ b/test.js
@@ -358,6 +358,9 @@ async function main()
checkIndentation("pluto_catch e do", true, true);
checkIndentation("end", false, true);
checkIndentation("until finished", false, true);
+ checkIndentation("repeat", true, false);
+ checkIndentation("repeat until true", false, false);
+ checkIndentation("repeat tick() until finished", false, false);
checkIndentation("values = {", true, false);
checkIndentation("}", false, true);
checkIndentation("$type Func = function(_: string): void", false, false);
From 5b1a8def726f202228a8aa76419e9da1dbbcb3ef Mon Sep 17 00:00:00 2001
From: Sainan <63328889+Sainan@users.noreply.github.com>
Date: Fri, 10 Oct 2025 16:13:15 +0200
Subject: [PATCH 2/2] diff reduction
---
Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences | 2 +-
language-config.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences b/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
index 7eb11d1..cb1fc19 100644
--- a/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
+++ b/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
@@ -7,7 +7,7 @@
increaseIndentPattern
- (^\s*\$?(?!declare\s+function\b)\b((local)?[\s\w=]+)?\b(function(?!\s*\([^)]*\)\s*:)|repeat(?![^\n]*\buntil\b)|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\b((?!\bend\b).)*$|^.*\b(do|then)\b((?!\bend\b).)*$|^.*\{((?!\}).)*$)
+ (^\s*\$?(?!declare\s+function\b)\b((local)?[\s\w=]+)?\b(function(?!\s*\([^)]*\)\s*:)|repeat(?![^\n]*\buntil\b)|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\b((?!\bend\b).)*$|^.*\b(do|then)\b((?!\bend\b).)*$|^.*\{((?!\}).)*$)
decreaseIndentPattern
(^\s*\$?\b(elsei|elseif|else|catch|pluto_catch|end|until)\b.*$|^((?!\{).)*\}\;?.*$)
diff --git a/language-config.json b/language-config.json
index 961301b..6ab46dc 100644
--- a/language-config.json
+++ b/language-config.json
@@ -5,7 +5,7 @@
},
// Keep in sync with Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences
"indentationRules": {
- "increaseIndentPattern": "(^\\s*\\$?(?!declare\\s+function\\b)\\b((local)?[\\s\\w=]+)?\\b(function(?!\\s*\\([^)]*\\)\\s*:)|repeat(?![^\\n]*\\buntil\\b)|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\\b((?!\\bend\\b).)*$|^.*\\b(do|then)\\b((?!\\bend\\b).)*$|^.*\\{((?!\\}).)*$)",
+ "increaseIndentPattern": "(^\\s*\\$?(?!declare\\s+function\\b)\\b((local)?[\\s\\w=]+)?\\b(function(?!\\s*\\([^)]*\\)\\s*:)|repeat(?![^\\n]*\\buntil\\b)|else|elseif|if|while|class|pluto_class|enum|pluto_enum|try|pluto_try)\\b((?!\\bend\\b).)*$|^.*\\b(do|then)\\b((?!\\bend\\b).)*$|^.*\\{((?!\\}).)*$)",
"decreaseIndentPattern": "(^\\s*\\$?\\b(elsei|elseif|else|catch|pluto_catch|end|until)\\b.*$|^((?!\\{).)*\\}\\;?.*$)"
}
}