Search Google

This commit is contained in:
2021-10-20 09:10:06 -07:00
parent 9efe4e506b
commit b7453ff4f1
5 changed files with 88 additions and 73 deletions

View File

@ -34,6 +34,7 @@ export function activate(context: vscode.ExtensionContext) {
vscode.commands.registerCommand('helper.listToListWrappedComma', helper.listToListWrappedComma),
vscode.commands.registerCommand('helper.prettySql', helper.prettySql),
vscode.commands.registerCommand('helper.removeComment', helper.removeComment),
vscode.commands.registerCommand('helper.searchGoogle', helper.searchGoogle),
vscode.commands.registerCommand('helper.sortLength', helper.sortLength),
vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal),
vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql),

View File

@ -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);