diff --git a/type-script-helper-1.2.4.vsix b/type-script-helper-1.2.4.vsix new file mode 100644 index 0000000..dc432c9 Binary files /dev/null and b/type-script-helper-1.2.4.vsix differ diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 2be87d1..02e6ed3 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -4,7 +4,7 @@ "description": "Helper for VS Code in TypeScript", "publisher": "IFX", "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", - "version": "1.2.3", + "version": "1.2.4", "engines": { "vscode": "^1.40.0" }, @@ -22,6 +22,7 @@ "onCommand:helper.listToListWrappedComma", "onCommand:helper.prettySql", "onCommand:helper.removeComment", + "onCommand:helper.searchGoogle", "onCommand:helper.sortLength", "onCommand:helper.sortNormal", "onCommand:helper.unwrapSql", @@ -39,6 +40,7 @@ { "command": "helper.listToListWrappedComma", "title": "List to list wrapped comma" }, { "command": "helper.prettySql", "title": "Pretty Sql" }, { "command": "helper.removeComment", "title": "Remove comment" }, + { "command": "helper.searchGoogle", "title": "Search Google" }, { "command": "helper.sortLength", "title": "Sort by Length" }, { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index eb3cb04..011d79c 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -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), diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts index 53c9dac..91a8e14 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/helper.ts @@ -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 | 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); diff --git a/type-script-helper/tsconfig.json b/type-script-helper/tsconfig.json index b65c745..e275e0d 100644 --- a/type-script-helper/tsconfig.json +++ b/type-script-helper/tsconfig.json @@ -8,6 +8,7 @@ ], "sourceMap": true, "rootDir": "src", + "resolveJsonModule": true, "strict": true /* enable all strict type-checking options */ /* Additional Checks */ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */