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.*$|^((?!\\{).)*\\}\\;?.*$)" } }