mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-23 17:23:02 -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",
|
||||
"title": "%sqlDatabaseProjects.addDatabaseReference%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.openContainingFolder",
|
||||
"title": "%sqlDatabaseProjects.openContainingFolder%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
}
|
||||
],
|
||||
"menus": {
|
||||
@@ -188,6 +193,10 @@
|
||||
{
|
||||
"command": "sqlDatabaseProjects.addDatabaseReference",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.openContainingFolder",
|
||||
"when": "false"
|
||||
}
|
||||
],
|
||||
"view/item/context": [
|
||||
@@ -251,6 +260,11 @@
|
||||
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.folder || viewItem == databaseProject.itemType.file",
|
||||
"group": "9_dbProjectsLast@2"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.openContainingFolder",
|
||||
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.project",
|
||||
"group": "9_dbProjectsLast@8"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.close",
|
||||
"when": "view == sqlDatabaseProjectsView && viewItem == databaseProject.itemType.project",
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
|
||||
"sqlDatabaseProjects.addDatabaseReference": "Add Database Reference",
|
||||
"sqlDatabaseProjects.openContainingFolder": "Open Containing Folder",
|
||||
|
||||
"sqlDatabaseProjects.Settings": "Database Projects",
|
||||
"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 databaseSchemaProvider = 'DatabaseSchemaProvider';
|
||||
|
||||
// commands
|
||||
export const revealFileInOsCommand = 'revealFileInOS';
|
||||
export const schemaCompareStartCommand = 'schemaCompare.start';
|
||||
export const sqlDatabaseProjectsViewFocusCommand = 'sqlDatabaseProjectsView.focus';
|
||||
export const vscodeOpenCommand = 'vscode.open';
|
||||
|
||||
// UI Strings
|
||||
|
||||
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.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.exclude', async (node: FileNode | FolderNode) => { await this.projectsController.exclude(node); });
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ export class ProjectsController {
|
||||
|
||||
public async focusProject(project?: Project): Promise<void> {
|
||||
if (project && this.projects.includes(project)) {
|
||||
await this.apiWrapper.executeCommand('sqlDatabaseProjectsView.focus');
|
||||
await this.apiWrapper.executeCommand(constants.sqlDatabaseProjectsViewFocusCommand);
|
||||
await this.projectTreeViewProvider.focus(project);
|
||||
}
|
||||
}
|
||||
@@ -261,7 +261,7 @@ export class ProjectsController {
|
||||
|
||||
// check that dacpac exists
|
||||
if (await utils.exists(dacpacPath)) {
|
||||
this.apiWrapper.executeCommand('schemaCompare.start', dacpacPath);
|
||||
this.apiWrapper.executeCommand(constants.schemaCompareStartCommand, dacpacPath);
|
||||
} else {
|
||||
this.apiWrapper.showErrorMessage(constants.buildDacpacNotFound);
|
||||
}
|
||||
@@ -346,7 +346,7 @@ export class ProjectsController {
|
||||
|
||||
const newEntry = await project.addScriptItem(relativeFilePath, newFileText);
|
||||
|
||||
this.apiWrapper.executeCommand('vscode.open', newEntry.fsUri);
|
||||
this.apiWrapper.executeCommand(constants.vscodeOpenCommand, newEntry.fsUri);
|
||||
|
||||
this.refreshProjectsTree();
|
||||
} 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)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @param context a treeItem in a project's hierarchy, to be used to obtain a Project
|
||||
|
||||
Reference in New Issue
Block a user