mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
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:
@@ -133,12 +133,12 @@
|
|||||||
"view/item/context": [
|
"view/item/context": [
|
||||||
{
|
{
|
||||||
"command": "projects.manageProject",
|
"command": "projects.manageProject",
|
||||||
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project && azdataAvailable",
|
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ && azdataAvailable",
|
||||||
"group": "0_projectsFirst@1"
|
"group": "0_projectsFirst@1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "projects.removeProject",
|
"command": "projects.removeProject",
|
||||||
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
|
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
|
||||||
"group": "9_dbProjectsLast@9"
|
"group": "9_dbProjectsLast@9"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -185,6 +185,11 @@
|
|||||||
"command": "sqlDatabaseProjects.generateProjectFromOpenApiSpec",
|
"command": "sqlDatabaseProjects.generateProjectFromOpenApiSpec",
|
||||||
"title": "%sqlDatabaseProjects.generateProjectFromOpenApiSpec%",
|
"title": "%sqlDatabaseProjects.generateProjectFromOpenApiSpec%",
|
||||||
"category": "%sqlDatabaseProjects.displayName%"
|
"category": "%sqlDatabaseProjects.displayName%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlDatabaseProjects.convertToSdkStyleProject",
|
||||||
|
"title": "%sqlDatabaseProjects.convertToSdkStyleProject%",
|
||||||
|
"category": "%sqlDatabaseProjects.displayName%"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"menus": {
|
"menus": {
|
||||||
@@ -296,77 +301,81 @@
|
|||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.changeTargetPlatform",
|
"command": "sqlDatabaseProjects.changeTargetPlatform",
|
||||||
"when": "false"
|
"when": "false"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlDatabaseProjects.convertToSdkStyleProject",
|
||||||
|
"when": "false"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"view/item/context": [
|
"view/item/context": [
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.build",
|
"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"
|
"group": "1_dbProjectsFirst@1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.publish",
|
"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"
|
"group": "1_dbProjectsFirst@2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.schemaCompare",
|
"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"
|
"group": "1_dbProjectsFirst@3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.updateProjectFromDatabase",
|
"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"
|
"group": "1_dbProjectsFirst@4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newItem",
|
"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"
|
"group": "2_dbProjects_newMain@1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.addExistingItem",
|
"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"
|
"group": "2_dbProjects_newMain@2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newFolder",
|
"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"
|
"group": "2_dbProjects_newMain@3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newTable",
|
"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"
|
"group": "3_dbProjects_newItem@1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newView",
|
"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"
|
"group": "3_dbProjects_newItem@2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newStoredProcedure",
|
"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"
|
"group": "3_dbProjects_newItem@3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newExternalStreamingJob",
|
"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"
|
"group": "3_dbProjects_newItem@4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newScript",
|
"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"
|
"group": "3_dbProjects_newItem@7"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newPreDeploymentScript",
|
"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"
|
"group": "3_dbProjects_newItem@8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.newPostDeploymentScript",
|
"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"
|
"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",
|
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.folder || viewItem =~ /^databaseProject.itemType.file/ || viewItem == databaseProject.itemType.reference",
|
||||||
"group": "9_dbProjectsLast@2"
|
"group": "9_dbProjectsLast@2"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlDatabaseProjects.convertToSdkStyleProject",
|
||||||
|
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.legacyProject",
|
||||||
|
"group": "9_dbProjectsLast@5"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.changeTargetPlatform",
|
"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"
|
"group": "9_dbProjectsLast@6"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.editProjectFile",
|
"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"
|
"group": "9_dbProjectsLast@7"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.openContainingFolder",
|
"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"
|
"group": "9_dbProjectsLast@8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
"sqlDatabaseProjects.editProjectFile": "Edit .sqlproj File",
|
"sqlDatabaseProjects.editProjectFile": "Edit .sqlproj File",
|
||||||
"sqlDatabaseProjects.changeTargetPlatform": "Change Target Platform",
|
"sqlDatabaseProjects.changeTargetPlatform": "Change Target Platform",
|
||||||
"sqlDatabaseProjects.generateProjectFromOpenApiSpec": "Generate SQL Project from OpenAPI/Swagger spec",
|
"sqlDatabaseProjects.generateProjectFromOpenApiSpec": "Generate SQL Project from OpenAPI/Swagger spec",
|
||||||
|
"sqlDatabaseProjects.convertToSdkStyleProject": "Convert to SDK-style project",
|
||||||
|
|
||||||
"sqlDatabaseProjects.Settings": "Database Projects",
|
"sqlDatabaseProjects.Settings": "Database Projects",
|
||||||
"sqlDatabaseProjects.dotnetInstallLocation": "Full path to .NET SDK on the machine.",
|
"sqlDatabaseProjects.dotnetInstallLocation": "Full path to .NET SDK on the machine.",
|
||||||
|
|||||||
@@ -481,6 +481,7 @@ export const sqlAuth = 'SqlAuth';
|
|||||||
// Tree item types
|
// Tree item types
|
||||||
export enum DatabaseProjectItemType {
|
export enum DatabaseProjectItemType {
|
||||||
project = 'databaseProject.itemType.project',
|
project = 'databaseProject.itemType.project',
|
||||||
|
legacyProject = 'databaseProject.itemType.legacyProject',
|
||||||
folder = 'databaseProject.itemType.folder',
|
folder = 'databaseProject.itemType.folder',
|
||||||
file = 'databaseProject.itemType.file',
|
file = 'databaseProject.itemType.file',
|
||||||
externalStreamingJob = 'databaseProject.itemType.file.externalStreamingJob',
|
externalStreamingJob = 'databaseProject.itemType.file.externalStreamingJob',
|
||||||
|
|||||||
@@ -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.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.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.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.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.exclude', async (node: WorkspaceTreeItem) => { return this.projectsController.exclude(node); });
|
||||||
vscode.commands.registerCommand('sqlDatabaseProjects.changeTargetPlatform', async (node: WorkspaceTreeItem) => { return this.projectsController.changeTargetPlatform(node); });
|
vscode.commands.registerCommand('sqlDatabaseProjects.changeTargetPlatform', async (node: WorkspaceTreeItem) => { return this.projectsController.changeTargetPlatform(node); });
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export class ProjectRootTreeItem extends BaseProjectTreeItem {
|
|||||||
|
|
||||||
public get treeItem(): vscode.TreeItem {
|
public get treeItem(): vscode.TreeItem {
|
||||||
const projectItem = new vscode.TreeItem(this.fileSystemUri, vscode.TreeItemCollapsibleState.Expanded);
|
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.iconPath = IconPathHelper.databaseProject;
|
||||||
projectItem.label = path.basename(this.projectUri.fsPath, sqlprojExtension);
|
projectItem.label = path.basename(this.projectUri.fsPath, sqlprojExtension);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user