|
|
|
@ -15,6 +15,7 @@ enum LinesAction {
|
|
|
|
|
prettySql,
|
|
|
|
|
pdsfToFixedWidth,
|
|
|
|
|
removeComment,
|
|
|
|
|
searchGoogle,
|
|
|
|
|
sortLength,
|
|
|
|
|
sortNormal,
|
|
|
|
|
unwrapSql,
|
|
|
|
@ -57,28 +58,28 @@ function convertToRegularExpressionLogic(lines: string[]): string[] {
|
|
|
|
|
let explicitLines = 50;
|
|
|
|
|
for (let i = 0; i < lines.length - 1 && i < explicitLines; ++i) {
|
|
|
|
|
result = result + lines[i].trim().
|
|
|
|
|
split('\\').join('\\\\').
|
|
|
|
|
split('(').join('\\(').
|
|
|
|
|
split(')').join('\\)').
|
|
|
|
|
split('[').join('\\[').
|
|
|
|
|
split(']').join('\\]').
|
|
|
|
|
split('{').join('\\{').
|
|
|
|
|
split('}').join('\\}').
|
|
|
|
|
split('.').join('\\.').
|
|
|
|
|
split('*').join('\\*').
|
|
|
|
|
split('+').join('\\+').
|
|
|
|
|
split('?').join('\\?').
|
|
|
|
|
split('|').join('\\|').
|
|
|
|
|
split('$').join('\\$').
|
|
|
|
|
split('^').join('\\^') +
|
|
|
|
|
'~';
|
|
|
|
|
split('\\').join('\\\\').
|
|
|
|
|
split('(').join('\\(').
|
|
|
|
|
split(')').join('\\)').
|
|
|
|
|
split('[').join('\\[').
|
|
|
|
|
split(']').join('\\]').
|
|
|
|
|
split('{').join('\\{').
|
|
|
|
|
split('}').join('\\}').
|
|
|
|
|
split('.').join('\\.').
|
|
|
|
|
split('*').join('\\*').
|
|
|
|
|
split('+').join('\\+').
|
|
|
|
|
split('?').join('\\?').
|
|
|
|
|
split('|').join('\\|').
|
|
|
|
|
split('$').join('\\$').
|
|
|
|
|
split('^').join('\\^') +
|
|
|
|
|
'~';
|
|
|
|
|
}
|
|
|
|
|
for (let i = explicitLines; i < lines.length - 1; ++i) {
|
|
|
|
|
result = result + '.*~';
|
|
|
|
|
}
|
|
|
|
|
result = result.
|
|
|
|
|
substring(0, result.length - 1).
|
|
|
|
|
split('~').join('\\r\\n\?\\s\*');
|
|
|
|
|
substring(0, result.length - 1).
|
|
|
|
|
split('~').join('\\r\\n\?\\s\*');
|
|
|
|
|
results = [result];
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
@ -87,26 +88,26 @@ function expandSqlLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
lines[i] = ' ' + lines[i];
|
|
|
|
|
lines[i] = lines[i].
|
|
|
|
|
split(' select ').join(' SELECT\r\n').
|
|
|
|
|
split(' from ').join('\r\n FROM ').
|
|
|
|
|
split(' where ').join('\r\n WHERE ').
|
|
|
|
|
split(' and ').join('\r\n and ').
|
|
|
|
|
split(' join ').join('\r\n join ').
|
|
|
|
|
split(' left join ').join('\r\n left join ').
|
|
|
|
|
split(' on ').join('\r\n ON ').
|
|
|
|
|
split(' group by ').join('\r\n GROUP BY ').
|
|
|
|
|
split(' order by ').join('\r\n ORDER BY ').
|
|
|
|
|
split(' SELECT ').join(' SELECT\r\n').
|
|
|
|
|
split(' FROM ').join('\r\n FROM ').
|
|
|
|
|
split(' WHERE ').join('\r\n WHERE ').
|
|
|
|
|
split(' AND ').join('\r\n AND ').
|
|
|
|
|
split(' JOIN ').join('\r\n JOIN ').
|
|
|
|
|
split(' LEFT JOIN ').join('\r\n LEFT JOIN ').
|
|
|
|
|
split(' ON ').join('\r\n ON ').
|
|
|
|
|
split(' GROUP BY ').join('\r\n GROUP BY ').
|
|
|
|
|
split(' ORDER BY ').join('\r\n ORDER BY ').
|
|
|
|
|
split('\r\n\r\n').join('\r\n').
|
|
|
|
|
trim();
|
|
|
|
|
split(' select ').join(' SELECT\r\n').
|
|
|
|
|
split(' from ').join('\r\n FROM ').
|
|
|
|
|
split(' where ').join('\r\n WHERE ').
|
|
|
|
|
split(' and ').join('\r\n and ').
|
|
|
|
|
split(' join ').join('\r\n join ').
|
|
|
|
|
split(' left join ').join('\r\n left join ').
|
|
|
|
|
split(' on ').join('\r\n ON ').
|
|
|
|
|
split(' group by ').join('\r\n GROUP BY ').
|
|
|
|
|
split(' order by ').join('\r\n ORDER BY ').
|
|
|
|
|
split(' SELECT ').join(' SELECT\r\n').
|
|
|
|
|
split(' FROM ').join('\r\n FROM ').
|
|
|
|
|
split(' WHERE ').join('\r\n WHERE ').
|
|
|
|
|
split(' AND ').join('\r\n AND ').
|
|
|
|
|
split(' JOIN ').join('\r\n JOIN ').
|
|
|
|
|
split(' LEFT JOIN ').join('\r\n LEFT JOIN ').
|
|
|
|
|
split(' ON ').join('\r\n ON ').
|
|
|
|
|
split(' GROUP BY ').join('\r\n GROUP BY ').
|
|
|
|
|
split(' ORDER BY ').join('\r\n ORDER BY ').
|
|
|
|
|
split('\r\n\r\n').join('\r\n').
|
|
|
|
|
trim();
|
|
|
|
|
}
|
|
|
|
|
removeBlanks(lines);
|
|
|
|
|
prettySqlLogic(lines);
|
|
|
|
@ -128,19 +129,19 @@ function prettySqlLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
lines[i] = ' ' + lines[i];
|
|
|
|
|
lines[i] = lines[i].
|
|
|
|
|
split(' select ').join(' SELECT ').
|
|
|
|
|
split(' distinct ').join(' DISTINCT ').
|
|
|
|
|
split(' as ').join(' AS ').
|
|
|
|
|
split(' from ').join(' FROM ').
|
|
|
|
|
split(' where ').join(' WHERE ').
|
|
|
|
|
split(' and ').join(' AND ').
|
|
|
|
|
split(' join ').join(' JOIN ').
|
|
|
|
|
split(' left join ').join(' LEFT JOIN ').
|
|
|
|
|
split(' on ').join(' ON ').
|
|
|
|
|
split(' group by ').join(' GROUP BY ').
|
|
|
|
|
split(' order by ').join(' ORDER BY ').
|
|
|
|
|
split('\r\n\r\n').join('\r\n').
|
|
|
|
|
trim();
|
|
|
|
|
split(' select ').join(' SELECT ').
|
|
|
|
|
split(' distinct ').join(' DISTINCT ').
|
|
|
|
|
split(' as ').join(' AS ').
|
|
|
|
|
split(' from ').join(' FROM ').
|
|
|
|
|
split(' where ').join(' WHERE ').
|
|
|
|
|
split(' and ').join(' AND ').
|
|
|
|
|
split(' join ').join(' JOIN ').
|
|
|
|
|
split(' left join ').join(' LEFT JOIN ').
|
|
|
|
|
split(' on ').join(' ON ').
|
|
|
|
|
split(' group by ').join(' GROUP BY ').
|
|
|
|
|
split(' order by ').join(' ORDER BY ').
|
|
|
|
|
split('\r\n\r\n').join('\r\n').
|
|
|
|
|
trim();
|
|
|
|
|
}
|
|
|
|
|
removeBlanks(lines);
|
|
|
|
|
}
|
|
|
|
@ -148,15 +149,23 @@ function prettySqlLogic(lines: string[]): void {
|
|
|
|
|
function removeCommentLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
lines[i] = lines[i].trim();
|
|
|
|
|
if(lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') {
|
|
|
|
|
if (lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') {
|
|
|
|
|
lines[i] = lines[i].substr(2);
|
|
|
|
|
}
|
|
|
|
|
if(lines[i].length > 0 && lines[i][0] === "'") {
|
|
|
|
|
if (lines[i].length > 0 && lines[i][0] === "'") {
|
|
|
|
|
lines[i] = lines[i].substr(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function searchGoogleLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
vscode.env.openExternal(
|
|
|
|
|
vscode.Uri.parse(`https://www.google.com/search?q=${lines[i]}`)
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function makeSorter(algorithm?: SortingAlgorithm): ArrayTransformer {
|
|
|
|
|
return function (lines: string[]): string[] {
|
|
|
|
|
return lines.sort(algorithm);
|
|
|
|
@ -175,30 +184,30 @@ function sortNormalLogic(lines: string[]): void {
|
|
|
|
|
function unwrapSqlLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
lines[i] = "//" + lines[i].
|
|
|
|
|
split('sql = "').join('').
|
|
|
|
|
split('sql = sql & "').join('').
|
|
|
|
|
split('sql.Append("').join('').
|
|
|
|
|
split('.Append("').join('').
|
|
|
|
|
split('Append("').join('').
|
|
|
|
|
split('");').join('').
|
|
|
|
|
split('").').join('').
|
|
|
|
|
split('")').join('').
|
|
|
|
|
split('" & ').join('$').
|
|
|
|
|
split(' & "').join('$').
|
|
|
|
|
split('"').join('').
|
|
|
|
|
trim();
|
|
|
|
|
split('sql = "').join('').
|
|
|
|
|
split('sql = sql & "').join('').
|
|
|
|
|
split('sql.Append("').join('').
|
|
|
|
|
split('.Append("').join('').
|
|
|
|
|
split('Append("').join('').
|
|
|
|
|
split('");').join('').
|
|
|
|
|
split('").').join('').
|
|
|
|
|
split('")').join('').
|
|
|
|
|
split('" & ').join('$').
|
|
|
|
|
split(' & "').join('$').
|
|
|
|
|
split('"').join('').
|
|
|
|
|
trim();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function wrapSqlCSharpLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
lines[i] = lines[i].trim();
|
|
|
|
|
if(lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') {
|
|
|
|
|
if (lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') {
|
|
|
|
|
lines[i] = lines[i].substr(2);
|
|
|
|
|
}
|
|
|
|
|
lines[i] = 'Append(" ' + lines[i] + ' ").';
|
|
|
|
|
}
|
|
|
|
|
if(lines.length > 0) {
|
|
|
|
|
if (lines.length > 0) {
|
|
|
|
|
lines[0] = 'sql.' + lines[0];
|
|
|
|
|
lines[lines.length - 1] = lines[lines.length - 1].split(' ").').join(' ");');
|
|
|
|
|
}
|
|
|
|
@ -207,29 +216,29 @@ function wrapSqlCSharpLogic(lines: string[]): void {
|
|
|
|
|
function wrapSqlVBLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
lines[i] = lines[i].trim();
|
|
|
|
|
if(lines[i].length > 0 && lines[i][0] === "'") {
|
|
|
|
|
if (lines[i].length > 0 && lines[i][0] === "'") {
|
|
|
|
|
lines[i] = lines[i].substr(1);
|
|
|
|
|
}
|
|
|
|
|
lines[i] = 'Append(" ' + lines[i] + ' ").';
|
|
|
|
|
}
|
|
|
|
|
if(lines.length > 0) {
|
|
|
|
|
if (lines.length > 0) {
|
|
|
|
|
lines[0] = 'sql.' + lines[0];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function sortLengthLogic(lines: string[]): void {
|
|
|
|
|
lines.sort(function(a, b) {
|
|
|
|
|
lines.sort(function (a, b) {
|
|
|
|
|
// ASC -> a.length - b.length
|
|
|
|
|
// DESC -> b.length - a.length
|
|
|
|
|
return a.length - b.length || // sort by length, if equal then
|
|
|
|
|
a.localeCompare(b); // sort by dictionary order
|
|
|
|
|
});
|
|
|
|
|
a.localeCompare(b); // sort by dictionary order
|
|
|
|
|
});
|
|
|
|
|
removeBlanks(lines);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function cutEachLineLogic(lines: string[]): void {
|
|
|
|
|
for (let i = 0; i < lines.length; ++i) {
|
|
|
|
|
if(lines[i].length > 0 && lines[i].indexOf("|||") > 0) {
|
|
|
|
|
if (lines[i].length > 0 && lines[i].indexOf("|||") > 0) {
|
|
|
|
|
lines[i] = lines[i].substr(0, lines[i].indexOf("|||"));
|
|
|
|
|
}
|
|
|
|
|
lines[i] = lines[i].trim();
|
|
|
|
@ -267,6 +276,7 @@ function linesFunction(linesAction: LinesAction): Thenable<boolean> | undefined
|
|
|
|
|
case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; }
|
|
|
|
|
case LinesAction.prettySql: { prettySqlLogic(lines); break; }
|
|
|
|
|
case LinesAction.removeComment: { removeCommentLogic(lines); break; }
|
|
|
|
|
case LinesAction.searchGoogle: { searchGoogleLogic(lines); break; }
|
|
|
|
|
case LinesAction.sortLength: { sortLengthLogic(lines); break; }
|
|
|
|
|
case LinesAction.sortNormal: { sortNormalLogic(lines); break; }
|
|
|
|
|
case LinesAction.unwrapSql: { unwrapSqlLogic(lines); break; }
|
|
|
|
@ -287,6 +297,7 @@ export const listToListWrappedComma = () => linesFunction(LinesAction.listToList
|
|
|
|
|
export const prettySql = () => linesFunction(LinesAction.prettySql);
|
|
|
|
|
export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth);
|
|
|
|
|
export const removeComment = () => linesFunction(LinesAction.removeComment);
|
|
|
|
|
export const searchGoogle = () => linesFunction(LinesAction.searchGoogle);
|
|
|
|
|
export const sortLength = () => linesFunction(LinesAction.sortLength);
|
|
|
|
|
export const sortNormal = () => linesFunction(LinesAction.sortNormal);
|
|
|
|
|
export const unwrapSql = () => linesFunction(LinesAction.unwrapSql);
|
|
|
|
|