• R/O
  • SSH
  • HTTPS

format-sql: Commit


Commit MetaInfo

Revision80 (tree)
Time2019-02-01 19:17:52
Authorkimur058

Log Message

1行コメントが整形されないように修正中

Change Summary

Incremental Difference

--- trunk/DMLBreaker3.x/DMLBreaker.js (revision 79)
+++ trunk/DMLBreaker3.x/DMLBreaker.js (revision 80)
@@ -123,9 +123,6 @@
123123 var quotationArray = formatResult.match(/'[^']*'|"[^"]*"/g);
124124 formatResult = formatResult.replace(/'[^']*'|"[^"]*"/g, "__QUOTATION__");
125125
126- // タブを半角スペースに変換
127- formatResult = formatResult.replace(/\t/g, " ");
128-
129126 // 整形対象の文字列を退避してから変換
130127 var regExp = new RegExp("__LF__ *(select|insert|update|delete|with)[ _][^;]*;", "gi");
131128 var formatArray = formatResult.match(regExp);
@@ -187,13 +184,17 @@
187184 tab = "";
188185 parenthesis = 0;
189186
190- // コメントを退避してから変換
191- var commentArray = wkSql.match(/\/\**?[^*]*\*\//g);
192- wkSql = wkSql.replace(/\/\**?[^*]*\*\//g, "__COMMENT__");
187+ // 1行コメントを退避してから変換
188+ var commentArray1 = wkSql.match(/--[^_]*__LF__/g);
189+ wkSql = wkSql.replace(/--[^_]*__LF__/g, "__COMMENT1__ ");
193190
194- // 改行を変換
195- wkSql = wkSql.replace(/__LF__/g, " ");
191+ // 複数行コメントを退避してから変換
192+ var commentArray2 = wkSql.match(/\/\**?[^*]*\*\//g);
193+ wkSql = wkSql.replace(/\/\**?[^*]*\*\//g, "__COMMENT2__");
196194
195+ // タブと改行を半角スペースに変換
196+ wkSql = wkSql.replace(/\t|__LF__/g, " ");
197+
197198 // union allを退避してから変換
198199 var unionAllArray = wkSql.match(/ union all /gi);
199200 wkSql = wkSql.replace(/ union all /gi, " __UNION_ALL__ ");
@@ -274,11 +275,16 @@
274275 }
275276
276277 // コメントを復元
277- if (commentArray != null) {
278- for (var j = 0; j < commentArray.length; j++) {
279- result = result.replace(/__COMMENT__/, commentArray[j]);
278+ if (commentArray1 != null) {
279+ for (var j = 0; j < commentArray1.length; j++) {
280+ result = result.replace(/__COMMENT1__/, commentArray1[j].replace(/__LF__/, ""));
280281 }
281282 }
283+ if (commentArray2 != null) {
284+ for (var j = 0; j < commentArray2.length; j++) {
285+ result = result.replace(/__COMMENT2__/, commentArray2[j]);
286+ }
287+ }
282288
283289 if (configFormatSqlEnd != 1) {
284290
@@ -520,6 +526,12 @@
520526
521527 betweenFlg = true;
522528
529+ } else if (wkAdd.match(/__COMMENT1__/i) != null) {
530+
531+ //wkAdd = wkAdd.replace(/\n\t*/g, "");
532+ formatSql += wkAdd + "\n\t" + tab;
533+ wkAdd = "";
534+
523535 } else if (configCaseFormat == 1) {
524536
525537 formatSql = formatCase(formatSql);
Show on old repository browser