From 8c6be27254497c22e440c387ba8cc9a4cbe6ac07 Mon Sep 17 00:00:00 2001 From: Kim Santiago <31145923+kisantia@users.noreply.github.com> Date: Thu, 24 Jun 2021 12:24:57 -0700 Subject: [PATCH] fix projects notification showing when it shouldn't (#15890) * fix projects notification showing when it shouldn't * use path.resolve --- extensions/data-workspace/src/main.ts | 10 +++++----- .../data-workspace/src/services/workspaceService.ts | 8 +++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/extensions/data-workspace/src/main.ts b/extensions/data-workspace/src/main.ts index f0aa33d1db..f8c60d84bf 100644 --- a/extensions/data-workspace/src/main.ts +++ b/extensions/data-workspace/src/main.ts @@ -14,12 +14,12 @@ import { IWorkspaceService } from './common/interfaces'; import { IconPathHelper } from './common/iconHelper'; import { ProjectDashboard } from './dialogs/projectDashboard'; -export function activate(context: vscode.ExtensionContext): Promise { +export async function activate(context: vscode.ExtensionContext): Promise { const workspaceService = new WorkspaceService(context); - workspaceService.loadTempProjects(); - workspaceService.checkForProjectsNotAddedToWorkspace(); - context.subscriptions.push(vscode.workspace.onDidChangeWorkspaceFolders(() => { - workspaceService.checkForProjectsNotAddedToWorkspace(); + await workspaceService.loadTempProjects(); + await workspaceService.checkForProjectsNotAddedToWorkspace(); + context.subscriptions.push(vscode.workspace.onDidChangeWorkspaceFolders(async () => { + await workspaceService.checkForProjectsNotAddedToWorkspace(); })); const workspaceTreeDataProvider = new WorkspaceTreeDataProvider(workspaceService); diff --git a/extensions/data-workspace/src/services/workspaceService.ts b/extensions/data-workspace/src/services/workspaceService.ts index 522ffbbb5b..1a30a14b87 100644 --- a/extensions/data-workspace/src/services/workspaceService.ts +++ b/extensions/data-workspace/src/services/workspaceService.ts @@ -218,6 +218,11 @@ export class WorkspaceService implements IWorkspaceService { } } + /** + * Returns an array of all the supported projects in the folder + * @param folder folder to look look for projects + * @returns array of file paths of supported projects + */ async getAllProjectsInFolder(folder: vscode.Uri): Promise { // get the unique supported project extensions const supportedProjectExtensions = [...new Set((await this.getAllProjectTypes()).map(p => { return p.projectFileExtension; }))]; @@ -229,7 +234,8 @@ export class WorkspaceService implements IWorkspaceService { // so the filter needs to be in the format folder/**/*.sqlproj if there's only one supported projectextension const projFilter = supportedProjectExtensions.length > 1 ? path.posix.join(escapedPath, '**', `*.{${supportedProjectExtensions.toString()}}`) : path.posix.join(escapedPath, '**', `*.${supportedProjectExtensions[0]}`); - return await glob(projFilter); + // glob will return an array of file paths with forward slashes, so they need to be converted back if on windows + return (await glob(projFilter)).map(p => path.resolve(p)); } async getProjectProvider(projectFile: vscode.Uri): Promise {