From e64c2a988c87089e527043bf8a701072c38c8980 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Tue, 31 Dec 2024 17:03:01 -0700 Subject: [PATCH] ## 1.110.0 --- type-script-helper/README.md | 5 ++ type-script-helper/package-lock.json | 120 +------------------------ type-script-helper/package.json | 7 +- type-script-helper/src/extension.ts | 1 + type-script-helper/src/kanbanHelper.ts | 52 +++++++++++ 5 files changed, 66 insertions(+), 119 deletions(-) diff --git a/type-script-helper/README.md b/type-script-helper/README.md index 3e59c57..f1942f4 100644 --- a/type-script-helper/README.md +++ b/type-script-helper/README.md @@ -166,3 +166,8 @@ None ----------------------------------------------------------------------------------------------------------- - Insert All Extensions (Not Disabled) + +## 1.110.0 1735689397890 = 638712861978900000 = Tue Dec 31 2024 16:56:37 GMT-0700 (Mountain Standard Time) +----------------------------------------------------------------------------------------------------------- + +- Open Sub-Kanban in New Window diff --git a/type-script-helper/package-lock.json b/type-script-helper/package-lock.json index e1e322e..485514f 100644 --- a/type-script-helper/package-lock.json +++ b/type-script-helper/package-lock.json @@ -1,12 +1,12 @@ { "name": "type-script-helper", - "version": "1.8.0", + "version": "1.110.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "type-script-helper", - "version": "1.8.0", + "version": "1.110.0", "dependencies": { "@vscode/vsce": "^3.2.1", "polka": "^0.5.2" @@ -281,9 +281,6 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz", "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==" }, - "node_modules/@types/eslint": { - "dev": true - }, "node_modules/@types/mocha": { "version": "10.0.10", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", @@ -1416,9 +1413,6 @@ "node": ">=16" } }, - "node_modules/@vscode/test-web": { - "dev": true - }, "node_modules/@vscode/vsce": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.2.1.tgz", @@ -1476,102 +1470,6 @@ "@vscode/vsce-sign-win32-x64": "2.0.2" } }, - "node_modules/@vscode/vsce-sign-alpine-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz", - "integrity": "sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "alpine" - ] - }, - "node_modules/@vscode/vsce-sign-alpine-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz", - "integrity": "sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "alpine" - ] - }, - "node_modules/@vscode/vsce-sign-darwin-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz", - "integrity": "sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@vscode/vsce-sign-darwin-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz", - "integrity": "sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@vscode/vsce-sign-linux-arm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz", - "integrity": "sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@vscode/vsce-sign-linux-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz", - "integrity": "sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@vscode/vsce-sign-linux-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz", - "integrity": "sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@vscode/vsce-sign-win32-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz", - "integrity": "sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@vscode/vsce-sign-win32-x64": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz", @@ -2223,20 +2121,6 @@ "node": ">=8" } }, - "node_modules/chokidar/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 2719ef7..cc53087 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -67,6 +67,11 @@ "command": "readOnlyLinesHelper.searchGoogle", "title": "Search Google" }, + { + "category": "Kanban", + "command": "kanban.openInNewWindow", + "title": "Open Sub-Kanban in New Window" + }, { "category": "Kanban", "command": "kanban.refreshBoth", @@ -270,5 +275,5 @@ "webpack": "webpack --config ./build/node-extension.webpack.config.js", "watch": "concurrently \"rollup -c -w\" \"webpack --watch --config ./build/node-extension.webpack.config.js\"" }, - "version": "1.9.0" + "version": "1.110.0" } diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index 045c224..beb1bcc 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -43,6 +43,7 @@ export async function activate(extensionContext: vscode.ExtensionContext) { vscode.commands.registerCommand("kanban.refreshSidebar", refreshSidebar), vscode.commands.registerCommand("kanban.refreshWebView", () => { refreshWebView(extensionContext); }), vscode.commands.registerCommand("kanban.openWithTextEditor", kanbanHelper.openWithTextEditor), + vscode.commands.registerCommand("kanban.openInNewWindow", kanbanHelper.openInNewWindow), vscode.commands.registerCommand("markdown.newMarkdownFile", markdownHelper.newMarkdownFile), vscode.commands.registerCommand('promiseLinesHelper.codeGeneratorQuickPick', promiseLinesHelper.codeGeneratorQuickPick), vscode.commands.registerCommand('promiseLinesHelper.insertDateTime', promiseLinesHelper.insertDateTime), diff --git a/type-script-helper/src/kanbanHelper.ts b/type-script-helper/src/kanbanHelper.ts index 1b21eaa..df06483 100644 --- a/type-script-helper/src/kanbanHelper.ts +++ b/type-script-helper/src/kanbanHelper.ts @@ -9,6 +9,57 @@ export function refreshBoth(extensionContext: vscode.ExtensionContext): any { setTimeout(() => { vscode.commands.executeCommand("workbench.action.webview.openDeveloperTools"); }, 500); } +async function openInNewWindowLogic(): Promise { + if (vscode.workspace.workspaceFolders === undefined) { + vscode.window.showInformationMessage("Open workspace first!"); + return; + } + if (vscode.window.tabGroups.activeTabGroup.activeTab === undefined) { + vscode.window.showInformationMessage("Open a tab first!"); + return; + } + const activeTabLabel = vscode.window.tabGroups.activeTabGroup.activeTab.label; + const paramCaseActiveTabLabel: string = paramCase(activeTabLabel); + vscode.window.showInformationMessage(`Searching for <${paramCaseActiveTabLabel}>`); + const fileUris: vscode.Uri[] = await vscode.workspace.findFiles(`**/${paramCaseActiveTabLabel}*`); + if (fileUris.length === 0) { + vscode.window.showInformationMessage(`Didn't find a file matching <${paramCaseActiveTabLabel}>!`); + return; + } + for (let i = 0; i < fileUris.length; ++i) { + const textDocument: vscode.TextDocument = await vscode.workspace.openTextDocument(fileUris[i]); + for (let j = 0; j < textDocument.lineCount; ++j) { + const text = textDocument.lineAt(j).text; + if (text.endsWith('"')) { + if (text.startsWith("code \"")) { + const lastText = textDocument.lineAt(j - 1).text; + if (lastText.startsWith("```")) { + const uri = vscode.Uri.parse("file:" + text.substring(6, text.length - 1)); + await vscode.commands.executeCommand('vscode.openFolder', uri, true); + break; + } + } + if (text.startsWith("codium \"")) { + const lastText = textDocument.lineAt(j - 1).text; + if (lastText.startsWith("```")) { + const uri = vscode.Uri.parse("file:" + text.substring(8, text.length - 1)); + await vscode.commands.executeCommand('vscode.openFolder', uri, true); + break; + } + } + if (text.startsWith("code-insiders \"")) { + const lastText = textDocument.lineAt(j - 1).text; + if (lastText.startsWith("```")) { + const uri = vscode.Uri.parse("file:" + text.substring(15, text.length - 1)); + await vscode.commands.executeCommand('vscode.openFolder', uri, true); + break; + } + } + } + } + } +} + async function openWithTextEditorLogic(): Promise { if (vscode.workspace.workspaceFolders === undefined) { vscode.window.showInformationMessage("Open workspace first!"); @@ -32,4 +83,5 @@ async function openWithTextEditorLogic(): Promise { } } +export const openInNewWindow = () => openInNewWindowLogic(); export const openWithTextEditor = () => openWithTextEditorLogic(); \ No newline at end of file