mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-15 17:22:25 -05:00
add api to open new project dialog with only one project type with filtered target platforms (#16315)
This commit is contained in:
@@ -9,6 +9,7 @@ import * as sqldbproj from 'sqldbproj';
|
||||
import * as vscode from 'vscode';
|
||||
import * as constants from '../common/constants';
|
||||
import { IconPathHelper } from '../common/iconHelper';
|
||||
import { getDataWorkspaceExtensionApi } from '../common/utils';
|
||||
import { SqlDatabaseProjectTreeViewProvider } from '../controllers/databaseProjectTreeViewProvider';
|
||||
import { ProjectsController } from '../controllers/projectController';
|
||||
import { Project } from '../models/project';
|
||||
@@ -147,4 +148,24 @@ export class SqlDatabaseProjectProvider implements dataworkspace.IProjectProvide
|
||||
get image(): ThemedIconPath {
|
||||
return IconPathHelper.dashboardSqlProj;
|
||||
}
|
||||
|
||||
async openSqlNewProjectDialog(allowedTargetPlatforms?: sqldbproj.SqlTargetPlatform[]): Promise<vscode.Uri | undefined> {
|
||||
let targetPlatforms = Array.from(constants.targetPlatformToVersion.keys());
|
||||
if (allowedTargetPlatforms) {
|
||||
targetPlatforms = targetPlatforms.filter(p => allowedTargetPlatforms.toString().includes(p));
|
||||
}
|
||||
|
||||
const projectType: dataworkspace.IProjectType = {
|
||||
id: constants.emptySqlDatabaseProjectTypeId,
|
||||
projectFileExtension: constants.sqlprojExtension.replace(/\./g, ''),
|
||||
displayName: constants.emptyProjectTypeDisplayName,
|
||||
description: constants.emptyProjectTypeDescription,
|
||||
icon: IconPathHelper.colorfulSqlProject,
|
||||
targetPlatforms: targetPlatforms,
|
||||
defaultTargetPlatform: constants.defaultTargetPlatform
|
||||
};
|
||||
|
||||
const projectUri = getDataWorkspaceExtensionApi().openSpecificProjectNewProjectDialog(projectType);
|
||||
return projectUri;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,13 @@ declare module 'sqldbproj' {
|
||||
* Opens and loads a .sqlproj file
|
||||
*/
|
||||
openProject(projectFilePath: string): Promise<ISqlProject>;
|
||||
|
||||
/**
|
||||
* Opens the data workspace new project dialog with only the sql database template
|
||||
* @param allowedTargetPlatforms specific target platforms to allow. If not specified, all target platforms for sql will be listed
|
||||
* @returns uri of the created the project or undefined if no project was created
|
||||
*/
|
||||
openSqlNewProjectDialog(allowedTargetPlatforms?: SqlTargetPlatform[]): Promise<vscode.Uri | undefined>;
|
||||
}
|
||||
|
||||
export interface ISqlProject {
|
||||
|
||||
Reference in New Issue
Block a user