Add convert to SDK style project to context menu (#18847)

* differentiate between sdk and legacy style projects in tree

* switch to legacy

* add to context menu

* add function call
This commit is contained in:
Kim Santiago
2022-03-29 10:15:36 -07:00
committed by GitHub
parent 459fab256e
commit f002a26fe4
6 changed files with 37 additions and 20 deletions

View File

@@ -185,6 +185,11 @@
"command": "sqlDatabaseProjects.generateProjectFromOpenApiSpec",
"title": "%sqlDatabaseProjects.generateProjectFromOpenApiSpec%",
"category": "%sqlDatabaseProjects.displayName%"
},
{
"command": "sqlDatabaseProjects.convertToSdkStyleProject",
"title": "%sqlDatabaseProjects.convertToSdkStyleProject%",
"category": "%sqlDatabaseProjects.displayName%"
}
],
"menus": {
@@ -296,77 +301,81 @@
{
"command": "sqlDatabaseProjects.changeTargetPlatform",
"when": "false"
},
{
"command": "sqlDatabaseProjects.convertToSdkStyleProject",
"when": "false"
}
],
"view/item/context": [
{
"command": "sqlDatabaseProjects.build",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
"group": "1_dbProjectsFirst@1"
},
{
"command": "sqlDatabaseProjects.publish",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
"group": "1_dbProjectsFirst@2"
},
{
"command": "sqlDatabaseProjects.schemaCompare",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project && azdataAvailable",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ && azdataAvailable",
"group": "1_dbProjectsFirst@3"
},
{
"command": "sqlDatabaseProjects.updateProjectFromDatabase",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project && azdataAvailable",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ && azdataAvailable",
"group": "1_dbProjectsFirst@4"
},
{
"command": "sqlDatabaseProjects.newItem",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "2_dbProjects_newMain@1"
},
{
"command": "sqlDatabaseProjects.addExistingItem",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "2_dbProjects_newMain@2"
},
{
"command": "sqlDatabaseProjects.newFolder",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "2_dbProjects_newMain@3"
},
{
"command": "sqlDatabaseProjects.newTable",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@1"
},
{
"command": "sqlDatabaseProjects.newView",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@2"
},
{
"command": "sqlDatabaseProjects.newStoredProcedure",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@3"
},
{
"command": "sqlDatabaseProjects.newExternalStreamingJob",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@4"
},
{
"command": "sqlDatabaseProjects.newScript",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@7"
},
{
"command": "sqlDatabaseProjects.newPreDeploymentScript",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@8"
},
{
"command": "sqlDatabaseProjects.newPostDeploymentScript",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project || viewItem == databaseProject.itemType.folder",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ || viewItem == databaseProject.itemType.folder",
"group": "3_dbProjects_newItem@9"
},
{
@@ -389,19 +398,24 @@
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.folder || viewItem =~ /^databaseProject.itemType.file/ || viewItem == databaseProject.itemType.reference",
"group": "9_dbProjectsLast@2"
},
{
"command": "sqlDatabaseProjects.convertToSdkStyleProject",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.legacyProject",
"group": "9_dbProjectsLast@5"
},
{
"command": "sqlDatabaseProjects.changeTargetPlatform",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
"group": "9_dbProjectsLast@6"
},
{
"command": "sqlDatabaseProjects.editProjectFile",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
"group": "9_dbProjectsLast@7"
},
{
"command": "sqlDatabaseProjects.openContainingFolder",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
"group": "9_dbProjectsLast@8"
},
{

View File

@@ -32,6 +32,7 @@
"sqlDatabaseProjects.editProjectFile": "Edit .sqlproj File",
"sqlDatabaseProjects.changeTargetPlatform": "Change Target Platform",
"sqlDatabaseProjects.generateProjectFromOpenApiSpec": "Generate SQL Project from OpenAPI/Swagger spec",
"sqlDatabaseProjects.convertToSdkStyleProject": "Convert to SDK-style project",
"sqlDatabaseProjects.Settings": "Database Projects",
"sqlDatabaseProjects.dotnetInstallLocation": "Full path to .NET SDK on the machine.",

View File

@@ -481,6 +481,7 @@ export const sqlAuth = 'SqlAuth';
// Tree item types
export enum DatabaseProjectItemType {
project = 'databaseProject.itemType.project',
legacyProject = 'databaseProject.itemType.legacyProject',
folder = 'databaseProject.itemType.folder',
file = 'databaseProject.itemType.file',
externalStreamingJob = 'databaseProject.itemType.file.externalStreamingJob',

View File

@@ -81,6 +81,7 @@ export default class MainController implements vscode.Disposable {
vscode.commands.registerCommand('sqlDatabaseProjects.addDatabaseReference', async (node: WorkspaceTreeItem) => { return this.projectsController.addDatabaseReference(node); });
vscode.commands.registerCommand('sqlDatabaseProjects.openContainingFolder', async (node: WorkspaceTreeItem) => { return this.projectsController.openContainingFolder(node); });
vscode.commands.registerCommand('sqlDatabaseProjects.editProjectFile', async (node: WorkspaceTreeItem) => { return this.projectsController.editProjectFile(node); });
vscode.commands.registerCommand('sqlDatabaseProjects.convertToSdkStyleProject', async (node: WorkspaceTreeItem) => { return this.projectsController.convertToSdkStyleProject(node); });
vscode.commands.registerCommand('sqlDatabaseProjects.delete', async (node: WorkspaceTreeItem) => { return this.projectsController.delete(node); });
vscode.commands.registerCommand('sqlDatabaseProjects.exclude', async (node: WorkspaceTreeItem) => { return this.projectsController.exclude(node); });
vscode.commands.registerCommand('sqlDatabaseProjects.changeTargetPlatform', async (node: WorkspaceTreeItem) => { return this.projectsController.changeTargetPlatform(node); });

View File

@@ -47,7 +47,7 @@ export class ProjectRootTreeItem extends BaseProjectTreeItem {
public get treeItem(): vscode.TreeItem {
const projectItem = new vscode.TreeItem(this.fileSystemUri, vscode.TreeItemCollapsibleState.Expanded);
projectItem.contextValue = DatabaseProjectItemType.project;
projectItem.contextValue = this.project.isSdkStyleProject ? DatabaseProjectItemType.project : DatabaseProjectItemType.legacyProject;
projectItem.iconPath = IconPathHelper.databaseProject;
projectItem.label = path.basename(this.projectUri.fsPath, sqlprojExtension);