From dcac64fb9aae5e61d89827e46cbcd13c2b1f59a1 Mon Sep 17 00:00:00 2001 From: Hannah Ward Date: Thu, 6 Apr 2017 12:31:44 +0100 Subject: [PATCH 1/3] chg: Compress repeated replaces --- src/core/operations/Code.js | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/core/operations/Code.js b/src/core/operations/Code.js index 32c147ef..9ee74d21 100755 --- a/src/core/operations/Code.js +++ b/src/core/operations/Code.js @@ -226,24 +226,14 @@ const Code = { } // Create newlines after ; - code = code.replace(/;/g, ";\n"); - - // Create newlines after { and around } - code = code.replace(/{/g, "{\n"); - code = code.replace(/}/g, "\n}\n"); - - // Remove carriage returns - code = code.replace(/\r/g, ""); - - // Remove all indentation - code = code.replace(/^\s+/g, ""); - code = code.replace(/\n\s+/g, "\n"); - - // Remove trailing spaces - code = code.replace(/\s*$/g, ""); - - // Remove newlines before { - code = code.replace(/\n{/g, "{"); + code = code.replace(/;/g, ";\n") + .replace(/{/g, "{\n") + .replace(/}/g, "\n}\n") + .replace(/\r/g, "") + .replace(/^\s+/g, "") + .replace(/\n\s+/g, "\n") + .replace(/\s*$/g, "") + .replace(/\n{/g, "{"); // Indent var i = 0, From bce09504987b2facb92c0aa517c1a00cc686506e Mon Sep 17 00:00:00 2001 From: Hannah Ward Date: Thu, 6 Apr 2017 12:43:37 +0100 Subject: [PATCH 2/3] chg: Removed redundant code = code.replace --- src/core/operations/Code.js | 41 ++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/src/core/operations/Code.js b/src/core/operations/Code.js index 9ee74d21..ba596f23 100755 --- a/src/core/operations/Code.js +++ b/src/core/operations/Code.js @@ -257,29 +257,24 @@ const Code = { } // Add strategic spaces - code = code.replace(/\s*([!<>=+-/*]?)=\s*/g, " $1= "); - code = code.replace(/\s*<([=]?)\s*/g, " <$1 "); - code = code.replace(/\s*>([=]?)\s*/g, " >$1 "); - code = code.replace(/([^+])\+([^+=])/g, "$1 + $2"); - code = code.replace(/([^-])-([^-=])/g, "$1 - $2"); - code = code.replace(/([^*])\*([^*=])/g, "$1 * $2"); - code = code.replace(/([^/])\/([^/=])/g, "$1 / $2"); - code = code.replace(/\s*,\s*/g, ", "); - code = code.replace(/\s*{/g, " {"); - code = code.replace(/}\n/g, "}\n\n"); - - // Just... don't look at this - code = code.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim, "$1 ($2)\n $3"); - code = code.replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim, "$1 ($2) $3"); - code = code.replace(/else\s*\n([^{])/gim, "else\n $1"); - code = code.replace(/else\s+([^{])/gim, "else $1"); - - // Remove strategic spaces - code = code.replace(/\s+;/g, ";"); - code = code.replace(/\{\s+\}/g, "{}"); - code = code.replace(/\[\s+\]/g, "[]"); - code = code.replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi, "} $1"); - + code = code.replace(/\s*([!<>=+-/*]?)=\s*/g, " $1= ") + .replace(/\s*<([=]?)\s*/g, " <$1 ") + .replace(/\s*>([=]?)\s*/g, " >$1 ") + .replace(/([^+])\+([^+=])/g, "$1 + $2") + .replace(/([^-])-([^-=])/g, "$1 - $2") + .replace(/([^*])\*([^*=])/g, "$1 * $2") + .replace(/([^/])\/([^/=])/g, "$1 / $2") + .replace(/\s*,\s*/g, ", ") + .replace(/\s*{/g, " {") + .replace(/}\n/g, "}\n\n") + .replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim, "$1 ($2)\n $3") + .replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim, "$1 ($2) $3") + .replace(/else\s*\n([^{])/gim, "else\n $1") + .replace(/else\s+([^{])/gim, "else $1") + .replace(/\s+;/g, ";") + .replace(/\{\s+\}/g, "{}") + .replace(/\[\s+\]/g, "[]") + .replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi, "} $1"); // Replace preserved tokens var ptokens = /###preservedToken(\d+)###/g; From 8d9c114acd1804d7c82fcb3b50d9816be3cd8f8f Mon Sep 17 00:00:00 2001 From: Hannah Ward Date: Fri, 7 Apr 2017 13:59:00 +0100 Subject: [PATCH 3/3] fix: Re-add comments in code replacements --- src/core/operations/Code.js | 65 +++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/src/core/operations/Code.js b/src/core/operations/Code.js index ba596f23..c938222f 100755 --- a/src/core/operations/Code.js +++ b/src/core/operations/Code.js @@ -225,15 +225,20 @@ const Code = { regexes.lastIndex = m.index; } - // Create newlines after ; - code = code.replace(/;/g, ";\n") - .replace(/{/g, "{\n") - .replace(/}/g, "\n}\n") - .replace(/\r/g, "") - .replace(/^\s+/g, "") - .replace(/\n\s+/g, "\n") - .replace(/\s*$/g, "") - .replace(/\n{/g, "{"); + code = code + // Create newlines after ; + .replace(/;/g, ";\n") + // Create newlines after { and around } + .replace(/{/g, "{\n") + .replace(/}/g, "\n}\n") + // Remove carriage returns + .replace(/\r/g, "") + // Remove all indentation + .replace(/^\s+/g, "") + .replace(/\n\s+/g, "\n") + // Remove trailing spaces + .replace(/\s*$/g, "") + .replace(/\n{/g, "{"); // Indent var i = 0, @@ -256,25 +261,29 @@ const Code = { i++; } - // Add strategic spaces - code = code.replace(/\s*([!<>=+-/*]?)=\s*/g, " $1= ") - .replace(/\s*<([=]?)\s*/g, " <$1 ") - .replace(/\s*>([=]?)\s*/g, " >$1 ") - .replace(/([^+])\+([^+=])/g, "$1 + $2") - .replace(/([^-])-([^-=])/g, "$1 - $2") - .replace(/([^*])\*([^*=])/g, "$1 * $2") - .replace(/([^/])\/([^/=])/g, "$1 / $2") - .replace(/\s*,\s*/g, ", ") - .replace(/\s*{/g, " {") - .replace(/}\n/g, "}\n\n") - .replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim, "$1 ($2)\n $3") - .replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim, "$1 ($2) $3") - .replace(/else\s*\n([^{])/gim, "else\n $1") - .replace(/else\s+([^{])/gim, "else $1") - .replace(/\s+;/g, ";") - .replace(/\{\s+\}/g, "{}") - .replace(/\[\s+\]/g, "[]") - .replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi, "} $1"); + code = code + // Add strategic spaces + .replace(/\s*([!<>=+-/*]?)=\s*/g, " $1= ") + .replace(/\s*<([=]?)\s*/g, " <$1 ") + .replace(/\s*>([=]?)\s*/g, " >$1 ") + .replace(/([^+])\+([^+=])/g, "$1 + $2") + .replace(/([^-])-([^-=])/g, "$1 - $2") + .replace(/([^*])\*([^*=])/g, "$1 * $2") + .replace(/([^/])\/([^/=])/g, "$1 / $2") + .replace(/\s*,\s*/g, ", ") + .replace(/\s*{/g, " {") + .replace(/}\n/g, "}\n\n") + // I was told not to look at this. + // I looked anyhow. + .replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)\s*\n([^{])/gim, "$1 ($2)\n $3") + .replace(/(if|for|while|with|elif|elseif)\s*\(([^\n]*)\)([^{])/gim, "$1 ($2) $3") + .replace(/else\s*\n([^{])/gim, "else\n $1") + .replace(/else\s+([^{])/gim, "else $1") + // Remove strategic spaces + .replace(/\s+;/g, ";") + .replace(/\{\s+\}/g, "{}") + .replace(/\[\s+\]/g, "[]") + .replace(/}\s*(else|catch|except|finally|elif|elseif|else if)/gi, "} $1"); // Replace preserved tokens var ptokens = /###preservedToken(\d+)###/g;