From 83a014c201dd62891391793a601bd735b2bf321c Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 25 Jan 2023 15:55:07 -0700 Subject: [PATCH] 1.3.15 Distinct Lines --- type-script-helper-1.3.15.vsix | Bin 0 -> 13575 bytes type-script-helper/README.md | 7 +- type-script-helper/package-lock.json | 73 ++++++++++++------- type-script-helper/package.json | 11 ++- type-script-helper/src/extension.ts | 3 +- type-script-helper/src/replaceLinesHelper.ts | 12 +++ 6 files changed, 75 insertions(+), 31 deletions(-) create mode 100644 type-script-helper-1.3.15.vsix diff --git a/type-script-helper-1.3.15.vsix b/type-script-helper-1.3.15.vsix new file mode 100644 index 0000000000000000000000000000000000000000..2e7f3d6f94cd27316a030f9bce6779076d0448cb GIT binary patch literal 13575 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" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -920,9 +932,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -1246,7 +1258,7 @@ }, "node_modules/typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "resolved": "http://localhost:4873/typescript/-/typescript-3.9.10.tgz", "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true, "bin": { @@ -1999,9 +2011,9 @@ } }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -2023,9 +2035,9 @@ } }, "mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -2041,9 +2053,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -2092,6 +2104,15 @@ "argparse": "^2.0.1" } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2107,9 +2128,9 @@ "dev": true }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "normalize-path": { @@ -2336,7 +2357,7 @@ }, "typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "resolved": "http://localhost:4873/typescript/-/typescript-3.9.10.tgz", "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true }, diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 8d8b489..08b1dd4 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.3.14", + "version": "1.3.15", "engines": { "vscode": "^1.40.0" }, @@ -13,13 +13,14 @@ ], "main": "./out/extension.js", "activationEvents": [ - "onCommand:open-in-new-window.open", + "onCommand:open-in-new-window.open", "onCommand:promiseLinesHelper.codeGeneratorQuickPick", "onCommand:readOnlyLinesHelper.searchGoogle", "onCommand:replaceLinesHelper.addCSharpComment", "onCommand:replaceLinesHelper.addVBComment", "onCommand:replaceLinesHelper.convertToRegularExpression", "onCommand:replaceLinesHelper.cutEachLine", + "onCommand:replaceLinesHelper.distinctLines", "onCommand:replaceLinesHelper.expandSql", "onCommand:replaceLinesHelper.listToListFamily", "onCommand:replaceLinesHelper.listToListWrappedComma", @@ -67,6 +68,10 @@ "command": "replaceLinesHelper.cutEachLine", "title": "Cut each line after |||" }, + { + "command": "replaceLinesHelper.distinctLines", + "title": "Distinct Lines" + }, { "command": "replaceLinesHelper.expandSql", "title": "Expand Sql" @@ -133,7 +138,7 @@ } ], "menus": { - "explorer/context": [ + "explorer/context": [ { "command": "open-in-new-window.open", "group": "openInNewWindowGroup" diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index b2176d3..8d8a38b 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -9,7 +9,7 @@ import * as promiseLinesHelper from './promiseLinesHelper'; // your extension is activated the very first time the command is executed export function activate(context: vscode.ExtensionContext) { - const openCommand = 'open-in-new-window.open'; + const openCommand = 'open-in-new-window.open'; // Use the console to output diagnostic information (console.log) and errors (console.error) // This line of code will only be executed once when your extension is activated @@ -43,6 +43,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('replaceLinesHelper.addVBComment', replaceLinesHelper.addVBComment), vscode.commands.registerCommand('replaceLinesHelper.convertToRegularExpression', replaceLinesHelper.convertToRegularExpression), vscode.commands.registerCommand('replaceLinesHelper.cutEachLine', replaceLinesHelper.cutEachLine), + vscode.commands.registerCommand('replaceLinesHelper.distinctLines', replaceLinesHelper.distinctLines), vscode.commands.registerCommand('replaceLinesHelper.expandSql', replaceLinesHelper.expandSql), vscode.commands.registerCommand('replaceLinesHelper.listToListFamily', replaceLinesHelper.listToListFamily), vscode.commands.registerCommand('replaceLinesHelper.listToListWrappedComma', replaceLinesHelper.listToListWrappedComma), diff --git a/type-script-helper/src/replaceLinesHelper.ts b/type-script-helper/src/replaceLinesHelper.ts index 00ae61c..eb7c176 100644 --- a/type-script-helper/src/replaceLinesHelper.ts +++ b/type-script-helper/src/replaceLinesHelper.ts @@ -8,6 +8,7 @@ enum LinesAction { addVBComment, convertToRegularExpression, cutEachLine, + distinctLines, expandSql, listToListFamily, listToListWrappedComma, @@ -365,6 +366,15 @@ function cutEachLineLogic(lines: string[]): void { removeBlanks(lines); } +function distinctLinesLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + if (lines[i].trim() === '' || lines.indexOf(lines[i]) !== lines.lastIndexOf(lines[i])) { + lines.splice(i, 1); + i--; + } + } +} + function returnLines(textEditor: vscode.TextEditor, startLine: number, endLine: number, lines: string[]) { return textEditor.edit(editBuilder => { const range = new vscode.Range(startLine, 0, endLine, textEditor.document.lineAt(endLine).text.length); @@ -390,6 +400,7 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.addVBComment: { addVBCommentLogic(lines); break; } case LinesAction.convertToRegularExpression: { lines = convertToRegularExpressionLogic(lines); break; } case LinesAction.cutEachLine: { cutEachLineLogic(lines); break; } + case LinesAction.distinctLines: { distinctLinesLogic(lines); break; } case LinesAction.expandSql: { expandSqlLogic(lines); break; } case LinesAction.listToListFamily: { listToListFamilyLogic(lines); break; } case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } @@ -415,6 +426,7 @@ export const addCSharpComment = () => linesFunction(LinesAction.addCSharpComment export const addVBComment = () => linesFunction(LinesAction.addVBComment); export const convertToRegularExpression = () => linesFunction(LinesAction.convertToRegularExpression); export const cutEachLine = () => linesFunction(LinesAction.cutEachLine); +export const distinctLines = () => linesFunction(LinesAction.distinctLines); export const expandSql = () => linesFunction(LinesAction.expandSql); export const listToListFamily = () => linesFunction(LinesAction.listToListFamily); export const listToListWrappedComma = () => linesFunction(LinesAction.listToListWrappedComma);