/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as vscode from 'vscode'; import { IExtension, IProjectType } from 'dataworkspace'; import { WorkspaceService } from '../services/workspaceService'; import { defaultProjectSaveLocation } from './projectLocationHelper'; import { openSpecificProjectNewProjectDialog } from '../dialogs/newProjectDialog'; import { isValidBasename, isValidBasenameErrorMessage, isValidFilenameCharacter, sanitizeStringForFilename } from './pathUtilsHelper'; import { noProjectProvidingExtensionsInstalled } from './constants'; export class DataWorkspaceExtension implements IExtension { constructor(private workspaceService: WorkspaceService) { } getProjectsInWorkspace(ext?: string, refreshFromDisk?: boolean): Promise { return this.workspaceService.getProjectsInWorkspace(ext, refreshFromDisk); } addProjectsToWorkspace(projectFiles: vscode.Uri[]): Promise { return this.workspaceService.addProjectsToWorkspace(projectFiles); } showProjectsView(): void { void vscode.commands.executeCommand('dataworkspace.views.main.focus'); } refreshProjectsTree(): void { this.workspaceService.refreshProjectsTree(); } get defaultProjectSaveLocation(): vscode.Uri | undefined { return defaultProjectSaveLocation(); } validateWorkspace(): Promise { return this.workspaceService.validateWorkspace(); } openSpecificProjectNewProjectDialog(projectType: IProjectType): Promise { if (!this.workspaceService.isProjectProviderAvailable) { void vscode.window.showErrorMessage(noProjectProvidingExtensionsInstalled); } return openSpecificProjectNewProjectDialog(projectType, this.workspaceService); } isValidFilenameCharacter(c: string): boolean { return isValidFilenameCharacter(c); } sanitizeStringForFilename(s: string): string { return sanitizeStringForFilename(s); } isValidBasename(name?: string): boolean { return isValidBasename(name); } isValidBasenameErrorMessage(name?: string): string | undefined { return isValidBasenameErrorMessage(name); } }