mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-17 09:35:37 -05:00
Adding option to open referenced project from SQL Project reference item (#23178)
* Adding hook to open a referenced SQL project * cleanup * adding docstring
This commit is contained in:
@@ -81,6 +81,7 @@ export default class MainController implements vscode.Disposable {
|
||||
this.context.subscriptions.push(vscode.commands.registerCommand('sqlDatabaseProjects.newPublishProfile', async (node: WorkspaceTreeItem) => { return this.projectsController.addItemPromptFromNode(node, ItemType.publishProfile); }));
|
||||
|
||||
this.context.subscriptions.push(vscode.commands.registerCommand('sqlDatabaseProjects.addDatabaseReference', async (node: WorkspaceTreeItem) => { return this.projectsController.addDatabaseReference(node); }));
|
||||
this.context.subscriptions.push(vscode.commands.registerCommand('sqlDatabaseProjects.openReferencedSqlProject', async (node: WorkspaceTreeItem) => { return this.projectsController.openReferencedSqlProject(node); }));
|
||||
this.context.subscriptions.push(vscode.commands.registerCommand('sqlDatabaseProjects.openContainingFolder', async (node: WorkspaceTreeItem) => { return this.projectsController.openContainingFolder(node); }));
|
||||
this.context.subscriptions.push(vscode.commands.registerCommand('sqlDatabaseProjects.editProjectFile', async (node: WorkspaceTreeItem) => { return this.projectsController.editProjectFile(node); }));
|
||||
this.context.subscriptions.push(vscode.commands.registerCommand('sqlDatabaseProjects.delete', async (node: WorkspaceTreeItem) => { return this.projectsController.delete(node); }));
|
||||
|
||||
@@ -28,7 +28,7 @@ import { BuildHelper } from '../tools/buildHelper';
|
||||
import { readPublishProfile, promptForSavingProfile, savePublishProfile } from '../models/publishProfile/publishProfile';
|
||||
import { AddDatabaseReferenceDialog } from '../dialogs/addDatabaseReferenceDialog';
|
||||
import { ISystemDatabaseReferenceSettings, IDacpacReferenceSettings, IProjectReferenceSettings, INugetPackageReferenceSettings } from '../models/IDatabaseReferenceSettings';
|
||||
import { DatabaseReferenceTreeItem } from '../models/tree/databaseReferencesTreeItem';
|
||||
import { DatabaseReferenceTreeItem, SqlProjectReferenceTreeItem } from '../models/tree/databaseReferencesTreeItem';
|
||||
import { CreateProjectFromDatabaseDialog } from '../dialogs/createProjectFromDatabaseDialog';
|
||||
import { UpdateProjectFromDatabaseDialog } from '../dialogs/updateProjectFromDatabaseDialog';
|
||||
import { TelemetryActions, TelemetryReporter, TelemetryViews } from '../common/telemetry';
|
||||
@@ -1028,6 +1028,22 @@ export class ProjectsController {
|
||||
await vscode.commands.executeCommand(constants.revealFileInOsCommand, vscode.Uri.file(project.projectFilePath));
|
||||
}
|
||||
|
||||
/**
|
||||
* Open the project indicated by `context` in the workspace
|
||||
* @param context a SqlProjectReferenceTreeItem in the project's tree
|
||||
*/
|
||||
public async openReferencedSqlProject(context: dataworkspace.WorkspaceTreeItem): Promise<void> {
|
||||
const node = context.element as BaseProjectTreeItem;
|
||||
const project = await this.getProjectFromContext(node);
|
||||
|
||||
if (!(node instanceof SqlProjectReferenceTreeItem)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const absolutePath = path.normalize(path.join(project.projectFolderPath, node.reference.fsUri.fsPath));
|
||||
await this.openProjectInWorkspace(absolutePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the .sqlproj file for the given project. Upon update of file, prompts user to
|
||||
* reload their project.
|
||||
|
||||
Reference in New Issue
Block a user