mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Add "Open Containing Folder" to project context menu (#11187)
* add command to open the folder the project is in * move commands to constants
This commit is contained in:
@@ -124,6 +124,11 @@
|
|||||||
"command": "sqlDatabaseProjects.addDatabaseReference",
|
"command": "sqlDatabaseProjects.addDatabaseReference",
|
||||||
"title": "%sqlDatabaseProjects.addDatabaseReference%",
|
"title": "%sqlDatabaseProjects.addDatabaseReference%",
|
||||||
"category": "%sqlDatabaseProjects.displayName%"
|
"category": "%sqlDatabaseProjects.displayName%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlDatabaseProjects.openContainingFolder",
|
||||||
|
"title": "%sqlDatabaseProjects.openContainingFolder%",
|
||||||
|
"category": "%sqlDatabaseProjects.displayName%"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"menus": {
|
"menus": {
|
||||||
@@ -188,6 +193,10 @@
|
|||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.addDatabaseReference",
|
"command": "sqlDatabaseProjects.addDatabaseReference",
|
||||||
"when": "false"
|
"when": "false"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlDatabaseProjects.openContainingFolder",
|
||||||
|
"when": "false"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"view/item/context": [
|
"view/item/context": [
|
||||||
@@ -251,6 +260,11 @@
|
|||||||
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.folder || viewItem == databaseProject.itemType.file",
|
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.folder || viewItem == databaseProject.itemType.file",
|
||||||
"group": "9_dbProjectsLast@2"
|
"group": "9_dbProjectsLast@2"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"command": "sqlDatabaseProjects.openContainingFolder",
|
||||||
|
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.project",
|
||||||
|
"group": "9_dbProjectsLast@8"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"command": "sqlDatabaseProjects.close",
|
"command": "sqlDatabaseProjects.close",
|
||||||
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.project",
|
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.project",
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
|
|
||||||
"sqlDatabaseProjects.addDatabaseReference": "Add Database Reference",
|
"sqlDatabaseProjects.addDatabaseReference": "Add Database Reference",
|
||||||
|
"sqlDatabaseProjects.openContainingFolder": "Open Containing Folder",
|
||||||
|
|
||||||
"sqlDatabaseProjects.Settings": "Database Projects",
|
"sqlDatabaseProjects.Settings": "Database Projects",
|
||||||
"sqlDatabaseProjects.netCoreInstallLocation": "Full Path to .Net Core SDK on the machine.",
|
"sqlDatabaseProjects.netCoreInstallLocation": "Full Path to .Net Core SDK on the machine.",
|
||||||
|
|||||||
@@ -22,6 +22,12 @@ export const msdbDacpac = 'msdb.dacpac';
|
|||||||
export const MicrosoftDatatoolsSchemaSqlSql = 'Microsoft.Data.Tools.Schema.Sql.Sql';
|
export const MicrosoftDatatoolsSchemaSqlSql = 'Microsoft.Data.Tools.Schema.Sql.Sql';
|
||||||
export const databaseSchemaProvider = 'DatabaseSchemaProvider';
|
export const databaseSchemaProvider = 'DatabaseSchemaProvider';
|
||||||
|
|
||||||
|
// commands
|
||||||
|
export const revealFileInOsCommand = 'revealFileInOS';
|
||||||
|
export const schemaCompareStartCommand = 'schemaCompare.start';
|
||||||
|
export const sqlDatabaseProjectsViewFocusCommand = 'sqlDatabaseProjectsView.focus';
|
||||||
|
export const vscodeOpenCommand = 'vscode.open';
|
||||||
|
|
||||||
// UI Strings
|
// UI Strings
|
||||||
|
|
||||||
export const projectNodeName = localize('projectNodeName', "Database Project");
|
export const projectNodeName = localize('projectNodeName', "Database Project");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ export default class MainController implements Disposable {
|
|||||||
this.apiWrapper.registerCommand('sqlDatabaseProjects.newFolder', async (node: BaseProjectTreeItem) => { await this.projectsController.addFolderPrompt(node); });
|
this.apiWrapper.registerCommand('sqlDatabaseProjects.newFolder', async (node: BaseProjectTreeItem) => { await this.projectsController.addFolderPrompt(node); });
|
||||||
|
|
||||||
this.apiWrapper.registerCommand('sqlDatabaseProjects.addDatabaseReference', async (node: BaseProjectTreeItem) => { await this.projectsController.addDatabaseReference(node); });
|
this.apiWrapper.registerCommand('sqlDatabaseProjects.addDatabaseReference', async (node: BaseProjectTreeItem) => { await this.projectsController.addDatabaseReference(node); });
|
||||||
|
this.apiWrapper.registerCommand('sqlDatabaseProjects.openContainingFolder', async (node: BaseProjectTreeItem) => { await this.projectsController.openContainingFolder(node); });
|
||||||
this.apiWrapper.registerCommand('sqlDatabaseProjects.delete', async (node: BaseProjectTreeItem) => { await this.projectsController.delete(node); });
|
this.apiWrapper.registerCommand('sqlDatabaseProjects.delete', async (node: BaseProjectTreeItem) => { await this.projectsController.delete(node); });
|
||||||
this.apiWrapper.registerCommand('sqlDatabaseProjects.exclude', async (node: FileNode | FolderNode) => { await this.projectsController.exclude(node); });
|
this.apiWrapper.registerCommand('sqlDatabaseProjects.exclude', async (node: FileNode | FolderNode) => { await this.projectsController.exclude(node); });
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ export class ProjectsController {
|
|||||||
|
|
||||||
public async focusProject(project?: Project): Promise<void> {
|
public async focusProject(project?: Project): Promise<void> {
|
||||||
if (project && this.projects.includes(project)) {
|
if (project && this.projects.includes(project)) {
|
||||||
await this.apiWrapper.executeCommand('sqlDatabaseProjectsView.focus');
|
await this.apiWrapper.executeCommand(constants.sqlDatabaseProjectsViewFocusCommand);
|
||||||
await this.projectTreeViewProvider.focus(project);
|
await this.projectTreeViewProvider.focus(project);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -261,7 +261,7 @@ export class ProjectsController {
|
|||||||
|
|
||||||
// check that dacpac exists
|
// check that dacpac exists
|
||||||
if (await utils.exists(dacpacPath)) {
|
if (await utils.exists(dacpacPath)) {
|
||||||
this.apiWrapper.executeCommand('schemaCompare.start', dacpacPath);
|
this.apiWrapper.executeCommand(constants.schemaCompareStartCommand, dacpacPath);
|
||||||
} else {
|
} else {
|
||||||
this.apiWrapper.showErrorMessage(constants.buildDacpacNotFound);
|
this.apiWrapper.showErrorMessage(constants.buildDacpacNotFound);
|
||||||
}
|
}
|
||||||
@@ -346,7 +346,7 @@ export class ProjectsController {
|
|||||||
|
|
||||||
const newEntry = await project.addScriptItem(relativeFilePath, newFileText);
|
const newEntry = await project.addScriptItem(relativeFilePath, newFileText);
|
||||||
|
|
||||||
this.apiWrapper.executeCommand('vscode.open', newEntry.fsUri);
|
this.apiWrapper.executeCommand(constants.vscodeOpenCommand, newEntry.fsUri);
|
||||||
|
|
||||||
this.refreshProjectsTree();
|
this.refreshProjectsTree();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -400,6 +400,15 @@ export class ProjectsController {
|
|||||||
return project.files.find(x => utils.getPlatformSafeFileEntryPath(x.relativePath) === utils.getPlatformSafeFileEntryPath(utils.trimUri(context.root.uri, context.uri)));
|
return project.files.find(x => utils.getPlatformSafeFileEntryPath(x.relativePath) === utils.getPlatformSafeFileEntryPath(utils.trimUri(context.root.uri, context.uri)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens the folder containing the project
|
||||||
|
* @param context a treeItem in a project's hierarchy, to be used to obtain a Project
|
||||||
|
*/
|
||||||
|
public async openContainingFolder(context: BaseProjectTreeItem): Promise<void> {
|
||||||
|
const project = this.getProjectFromContext(context);
|
||||||
|
await this.apiWrapper.executeCommand(constants.revealFileInOsCommand, Uri.file(project.projectFilePath));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a database reference to the project
|
* Adds a database reference to the project
|
||||||
* @param context a treeItem in a project's hierarchy, to be used to obtain a Project
|
* @param context a treeItem in a project's hierarchy, to be used to obtain a Project
|
||||||
|
|||||||
Reference in New Issue
Block a user