From 96e707a3e42ff59b805cc31421b60086d30156c1 Mon Sep 17 00:00:00 2001 From: Sindre Date: Fri, 14 Mar 2025 09:12:24 +0100 Subject: [PATCH 1/9] Added command for apply defer config --- package.json | 5 +++++ src/commands/index.ts | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/package.json b/package.json index fcecbc446..902fcd2a2 100644 --- a/package.json +++ b/package.json @@ -728,6 +728,11 @@ "command": "dbtPowerUser.showNotebookGenerateModelCTE", "title": "Generate dbt model CTE", "group": "notebooks@5" + }, + { + "command": "dbtPowerUser.applyDeferConfig", + "category": "dbt Power User", + "title": "Apply defer configuration" } ], "keybindings": [ diff --git a/src/commands/index.ts b/src/commands/index.ts index 2b3bf8253..cedff69d4 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -793,6 +793,14 @@ export class VSCodeCommands implements Disposable { ); }, ), + commands.registerCommand("dbtPowerUser.applyDeferConfig", () => { + const pickedProject: ProjectQuickPickItem | undefined = + this.dbtProjectContainer.getFromWorkspaceState( + "dbtPowerUser.projectSelected", + ); + + this.dbtProjectContainer.findDBTProject(pickedProject?.uri,)?.applyDeferConfig(); + }), ); } From c2df531a31d4d5cbd5ef19bad385c938b68b301c Mon Sep 17 00:00:00 2001 From: Sindre Date: Fri, 14 Mar 2025 09:12:31 +0100 Subject: [PATCH 2/9] Added devcontainer for testing --- .devcontainer/devcontainer.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..672f41470 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,28 @@ +{ + "name": "dbt Power User Development", + "image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-14", + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + "postCreateCommand": "npm install && npm run install:panels", + "customizations": { + "vscode": { + "extensions": [ + "ms-vscode.vscode-typescript-tslint-plugin", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint" + ] + } + }, + "forwardPorts": [3000, 4000], + "portsAttributes": { + "3000": { + "label": "Frontend" + }, + "4000": { + "label": "Backend" + } + }, + "remoteUser": "node" + } + \ No newline at end of file From 9a3a000716831c287fae297acf6b81b89f61f183 Mon Sep 17 00:00:00 2001 From: Sindre Date: Fri, 14 Mar 2025 10:03:00 +0100 Subject: [PATCH 3/9] Corrected command --- src/commands/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/commands/index.ts b/src/commands/index.ts index cedff69d4..30bed2a28 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -798,8 +798,11 @@ export class VSCodeCommands implements Disposable { this.dbtProjectContainer.getFromWorkspaceState( "dbtPowerUser.projectSelected", ); - - this.dbtProjectContainer.findDBTProject(pickedProject?.uri,)?.applyDeferConfig(); + if (pickedProject && pickedProject.uri) { + this.dbtProjectContainer + .findDBTProject(pickedProject.uri) + ?.applyDeferConfig(); + } }), ); } From ddf6c78ecbdce6f290c6595dbb3c5d1f5ed049d2 Mon Sep 17 00:00:00 2001 From: Sindre Date: Tue, 18 Mar 2025 16:06:53 +0100 Subject: [PATCH 4/9] Removed devcontainer file used for testing --- .devcontainer/devcontainer.json | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 672f41470..000000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "dbt Power User Development", - "image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-14", - "settings": { - "terminal.integrated.shell.linux": "/bin/bash" - }, - "postCreateCommand": "npm install && npm run install:panels", - "customizations": { - "vscode": { - "extensions": [ - "ms-vscode.vscode-typescript-tslint-plugin", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint" - ] - } - }, - "forwardPorts": [3000, 4000], - "portsAttributes": { - "3000": { - "label": "Frontend" - }, - "4000": { - "label": "Backend" - } - }, - "remoteUser": "node" - } - \ No newline at end of file From ae95c7d15302e6c8b6316594b2fcdb5f379b5fdd Mon Sep 17 00:00:00 2001 From: Sindre Date: Thu, 20 Mar 2025 10:25:02 +0100 Subject: [PATCH 5/9] Apply defer by active text editor or looping projects --- src/commands/index.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/commands/index.ts b/src/commands/index.ts index 4d230adac..a1bfb9cc9 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -798,6 +798,7 @@ export class VSCodeCommands implements Disposable { }, ), commands.registerCommand("dbtPowerUser.applyDeferConfig", () => { + // If user has completed walkthrough: const pickedProject: ProjectQuickPickItem | undefined = this.dbtProjectContainer.getFromWorkspaceState( "dbtPowerUser.projectSelected", @@ -806,6 +807,23 @@ export class VSCodeCommands implements Disposable { this.dbtProjectContainer .findDBTProject(pickedProject.uri) ?.applyDeferConfig(); + return; + } + // If active text editor + if (window.activeTextEditor && window.activeTextEditor.document.uri) { + const activeFileUri = window.activeTextEditor.document.uri; + const dbtProject = this.dbtProjectContainer.findDBTProject(activeFileUri); + if (dbtProject) { + dbtProject.applyDeferConfig() + return; + } + } + // Loop projects + const projects = this.dbtProjectContainer.getProjects(); + if (projects.length >= 0) { + for (const project of projects) { + project.applyDeferConfig() + } } }), ); From cdb82e111dc1feb57cca1513b5e7572dcf1a06f6 Mon Sep 17 00:00:00 2001 From: Sindre Grindheim Date: Thu, 20 Mar 2025 14:34:53 +0100 Subject: [PATCH 6/9] Simplified command applyDeferConfig in src/commands/index.ts Co-authored-by: Michiel De Smet --- src/commands/index.ts | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/src/commands/index.ts b/src/commands/index.ts index a1bfb9cc9..32914d6f4 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -798,33 +798,8 @@ export class VSCodeCommands implements Disposable { }, ), commands.registerCommand("dbtPowerUser.applyDeferConfig", () => { - // If user has completed walkthrough: - const pickedProject: ProjectQuickPickItem | undefined = - this.dbtProjectContainer.getFromWorkspaceState( - "dbtPowerUser.projectSelected", - ); - if (pickedProject && pickedProject.uri) { - this.dbtProjectContainer - .findDBTProject(pickedProject.uri) - ?.applyDeferConfig(); - return; - } - // If active text editor - if (window.activeTextEditor && window.activeTextEditor.document.uri) { - const activeFileUri = window.activeTextEditor.document.uri; - const dbtProject = this.dbtProjectContainer.findDBTProject(activeFileUri); - if (dbtProject) { - dbtProject.applyDeferConfig() - return; - } - } - // Loop projects const projects = this.dbtProjectContainer.getProjects(); - if (projects.length >= 0) { - for (const project of projects) { - project.applyDeferConfig() - } - } + await Promise.all(projects.map((project) => project.applyDeferConfig())); }), ); } From f818ef22fb69304f3c946d5aa2c03a510d3c27b4 Mon Sep 17 00:00:00 2001 From: Sindre Date: Thu, 20 Mar 2025 15:12:24 +0100 Subject: [PATCH 7/9] Corrected async for command applyDeferConfig --- src/commands/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/index.ts b/src/commands/index.ts index 32914d6f4..a0405222f 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -797,7 +797,7 @@ export class VSCodeCommands implements Disposable { ); }, ), - commands.registerCommand("dbtPowerUser.applyDeferConfig", () => { + commands.registerCommand("dbtPowerUser.applyDeferConfig", async () => { const projects = this.dbtProjectContainer.getProjects(); await Promise.all(projects.map((project) => project.applyDeferConfig())); }), From db793ef28fc2ef66d4b64c3e46a8bcebec5d10bf Mon Sep 17 00:00:00 2001 From: Sindre Date: Thu, 20 Mar 2025 15:59:04 +0100 Subject: [PATCH 8/9] Added try catch as suggested by coderabbitai --- src/commands/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/commands/index.ts b/src/commands/index.ts index a0405222f..79c910546 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -799,7 +799,13 @@ export class VSCodeCommands implements Disposable { ), commands.registerCommand("dbtPowerUser.applyDeferConfig", async () => { const projects = this.dbtProjectContainer.getProjects(); - await Promise.all(projects.map((project) => project.applyDeferConfig())); + try { + await Promise.all(projects.map((project) => project.applyDeferConfig())); + window.showInformationMessage("Applied defer configuration"); + } catch (error) { + this.dbtTerminal.error("applyDeferConfig", "Failed to apply defer configuration", error); + window.showErrorMessage(`Failed to apply defer configuration: ${error}`); + } }), ); } From e0ba6293c7fd34373d2b26b9bea88c1d987cd0ac Mon Sep 17 00:00:00 2001 From: Sindre Date: Thu, 20 Mar 2025 16:04:35 +0100 Subject: [PATCH 9/9] Updated formatting according to coderabbitai --- src/commands/index.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/commands/index.ts b/src/commands/index.ts index 79c910546..b595a61a2 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -800,11 +800,19 @@ export class VSCodeCommands implements Disposable { commands.registerCommand("dbtPowerUser.applyDeferConfig", async () => { const projects = this.dbtProjectContainer.getProjects(); try { - await Promise.all(projects.map((project) => project.applyDeferConfig())); + await Promise.all( + projects.map((project) => project.applyDeferConfig()), + ); window.showInformationMessage("Applied defer configuration"); } catch (error) { - this.dbtTerminal.error("applyDeferConfig", "Failed to apply defer configuration", error); - window.showErrorMessage(`Failed to apply defer configuration: ${error}`); + this.dbtTerminal.error( + "applyDeferConfig", + "Failed to apply defer configuration", + error + ); + window.showErrorMessage( + `Failed to apply defer configuration: ${error}` + ); } }), );