mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-10 10:12:34 -05:00
Show error if trying to create or open project when no project extension is installed (#22021)
* show error if trying to create or open project when no project extensions are found * only check if project providers are available on startup and when extensions change * addressing comments * Update extensions/data-workspace/src/services/workspaceService.ts use some instead of find Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> --------- Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
This commit is contained in:
@@ -16,6 +16,7 @@ import { getAzdataApi } from './common/utils';
|
||||
import { createNewProjectWithQuickpick } from './dialogs/newProjectQuickpick';
|
||||
import Logger from './common/logger';
|
||||
import { TelemetryReporter } from './common/telemetry';
|
||||
import { noProjectProvidingExtensionsInstalled } from './common/constants';
|
||||
|
||||
export async function activate(context: vscode.ExtensionContext): Promise<IExtension> {
|
||||
const startTime = new Date().getTime();
|
||||
@@ -46,6 +47,11 @@ export async function activate(context: vscode.ExtensionContext): Promise<IExten
|
||||
// Make sure all project providing extensions are activated to be sure the project templates show up
|
||||
await workspaceService.ensureProviderExtensionLoaded(undefined, true);
|
||||
|
||||
if (!workspaceService.isProjectProviderAvailable) {
|
||||
void vscode.window.showErrorMessage(noProjectProvidingExtensionsInstalled);
|
||||
return;
|
||||
}
|
||||
|
||||
if (azdataApi) {
|
||||
const dialog = new NewProjectDialog(workspaceService);
|
||||
await dialog.open();
|
||||
@@ -58,6 +64,11 @@ export async function activate(context: vscode.ExtensionContext): Promise<IExten
|
||||
// Make sure all project providing extensions are activated so that all supported project types show up in the file filter
|
||||
await workspaceService.ensureProviderExtensionLoaded(undefined, true);
|
||||
|
||||
if (!workspaceService.isProjectProviderAvailable) {
|
||||
void vscode.window.showErrorMessage(noProjectProvidingExtensionsInstalled);
|
||||
return;
|
||||
}
|
||||
|
||||
if (azdataApi) {
|
||||
const dialog = new OpenExistingDialog(workspaceService);
|
||||
await dialog.open();
|
||||
@@ -88,6 +99,10 @@ export async function activate(context: vscode.ExtensionContext): Promise<IExten
|
||||
}));
|
||||
Logger.log(`Registering commands took ${new Date().getTime() - registerCommandStartTime}ms`);
|
||||
|
||||
context.subscriptions.push(vscode.extensions.onDidChange(() => {
|
||||
workspaceService.updateIfProjectProviderAvailable();
|
||||
}));
|
||||
|
||||
const iconPathHelperTime = new Date().getTime();
|
||||
IconPathHelper.setExtensionContext(context);
|
||||
Logger.log(`IconPathHelper took ${new Date().getTime() - iconPathHelperTime}ms`);
|
||||
|
||||
Reference in New Issue
Block a user