diff --git a/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences b/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences index f6f5089..e972573 100644 --- a/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences +++ b/Pluto.tmbundle/Preferences/Indentation Rules.tmPreferences @@ -7,7 +7,7 @@ increaseIndentPattern - (^\s*\$?\b((local)?[\s\w=]+)?(function|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=]+)?(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).)*$|^.*\{((?!\}).)*$) decreaseIndentPattern (^\s*\$?\b(elsei|elseif|else|catch|pluto_catch|end|until)\b.*$|^((?!\{).)*\}\;?.*$) diff --git a/language-config.json b/language-config.json index 6e7cf57..2947597 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*\\$?\\b((local)?[\\s\\w=]+)?(function|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=]+)?(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).)*$|^.*\\{((?!\\}).)*$)", "decreaseIndentPattern": "(^\\s*\\$?\\b(elsei|elseif|else|catch|pluto_catch|end|until)\\b.*$|^((?!\\{).)*\\}\\;?.*$)" } -} \ No newline at end of file +} diff --git a/test.js b/test.js index a72b42b..2bcf9c2 100644 --- a/test.js +++ b/test.js @@ -342,6 +342,8 @@ async function main() checkIndentation("until finished", false, true); checkIndentation("values = {", true, false); checkIndentation("}", false, true); + checkIndentation("$type Func = function(_: string): void", false, false); + checkIndentation("$declare function tonumber(str: string, base: ?number): number", false, false); if (!ok) {