mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
merge sqlops and azdata (#6773)
This commit is contained in:
@@ -43,401 +43,16 @@ export interface IAzdataExtensionApiFactory {
|
|||||||
(extension: IExtensionDescription): typeof azdata;
|
(extension: IExtensionDescription): typeof azdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IAdsExtensionApiFactory {
|
||||||
/**
|
azdata: IAzdataExtensionApiFactory;
|
||||||
* This method instantiates and returns the extension API surface
|
sqlops: ISqlopsExtensionApiFactory;
|
||||||
*/
|
|
||||||
export function createSqlopsApiFactory(accessor: ServicesAccessor): ISqlopsExtensionApiFactory {
|
|
||||||
const uriTransformer = accessor.get(IURITransformerService);
|
|
||||||
const rpcProtocol = accessor.get(IExtHostRpcService);
|
|
||||||
const extHostLogService = accessor.get(ILogService);
|
|
||||||
|
|
||||||
// Addressable instances
|
|
||||||
const extHostConnectionManagement = rpcProtocol.set(SqlExtHostContext.ExtHostConnectionManagement, new ExtHostConnectionManagement(rpcProtocol));
|
|
||||||
const extHostCredentialManagement = rpcProtocol.set(SqlExtHostContext.ExtHostCredentialManagement, new ExtHostCredentialManagement(rpcProtocol));
|
|
||||||
const extHostDataProvider = rpcProtocol.set(SqlExtHostContext.ExtHostDataProtocol, new ExtHostDataProtocol(rpcProtocol, uriTransformer));
|
|
||||||
const extHostObjectExplorer = rpcProtocol.set(SqlExtHostContext.ExtHostObjectExplorer, new ExtHostObjectExplorer(rpcProtocol));
|
|
||||||
const extHostModalDialogs = rpcProtocol.set(SqlExtHostContext.ExtHostModalDialogs, new ExtHostModalDialogs(rpcProtocol));
|
|
||||||
const extHostTasks = rpcProtocol.set(SqlExtHostContext.ExtHostTasks, new ExtHostTasks(rpcProtocol, extHostLogService));
|
|
||||||
const extHostBackgroundTaskManagement = rpcProtocol.set(SqlExtHostContext.ExtHostBackgroundTaskManagement, new ExtHostBackgroundTaskManagement(rpcProtocol));
|
|
||||||
const extHostWebviewWidgets = rpcProtocol.set(SqlExtHostContext.ExtHostDashboardWebviews, new ExtHostDashboardWebviews(rpcProtocol));
|
|
||||||
const extHostModelViewTree = rpcProtocol.set(SqlExtHostContext.ExtHostModelViewTreeViews, new ExtHostModelViewTreeViews(rpcProtocol));
|
|
||||||
const extHostModelView = rpcProtocol.set(SqlExtHostContext.ExtHostModelView, new ExtHostModelView(rpcProtocol, extHostModelViewTree));
|
|
||||||
const extHostDashboard = rpcProtocol.set(SqlExtHostContext.ExtHostDashboard, new ExtHostDashboard(rpcProtocol));
|
|
||||||
const extHostModelViewDialog = rpcProtocol.set(SqlExtHostContext.ExtHostModelViewDialog, new ExtHostModelViewDialog(rpcProtocol, extHostModelView, extHostBackgroundTaskManagement));
|
|
||||||
const extHostQueryEditor = rpcProtocol.set(SqlExtHostContext.ExtHostQueryEditor, new ExtHostQueryEditor(rpcProtocol));
|
|
||||||
const extHostExtensionManagement = rpcProtocol.set(SqlExtHostContext.ExtHostExtensionManagement, new ExtHostExtensionManagement(rpcProtocol));
|
|
||||||
|
|
||||||
return function (extension: IExtensionDescription): typeof sqlops {
|
|
||||||
|
|
||||||
extHostExtensionManagement.$showObsoleteExtensionApiUsageNotification(localize('ObsoleteApiModuleMessage', "The extension \"{0}\" is using sqlops module which has been replaced by azdata module, the sqlops module will be removed in a future release.", extension.identifier.value));
|
|
||||||
// namespace: connection
|
|
||||||
const connection: typeof sqlops.connection = {
|
|
||||||
getActiveConnections(): Thenable<sqlops.connection.Connection[]> {
|
|
||||||
return extHostConnectionManagement.$getActiveConnections();
|
|
||||||
},
|
|
||||||
getCurrentConnection(): Thenable<sqlops.connection.Connection> {
|
|
||||||
return extHostConnectionManagement.$getSqlOpsCurrentConnection();
|
|
||||||
},
|
|
||||||
getCredentials(connectionId: string): Thenable<{ [name: string]: string }> {
|
|
||||||
return extHostConnectionManagement.$getCredentials(connectionId);
|
|
||||||
},
|
|
||||||
getServerInfo(connectionId: string): Thenable<sqlops.ServerInfo> {
|
|
||||||
return extHostConnectionManagement.$getServerInfo(connectionId);
|
|
||||||
},
|
|
||||||
openConnectionDialog(providers?: string[], initialConnectionProfile?: sqlops.IConnectionProfile, connectionCompletionOptions?: sqlops.IConnectionCompletionOptions): Thenable<sqlops.connection.Connection> {
|
|
||||||
return extHostConnectionManagement.$openConnectionDialog(providers, initialConnectionProfile, connectionCompletionOptions);
|
|
||||||
},
|
|
||||||
listDatabases(connectionId: string): Thenable<string[]> {
|
|
||||||
return extHostConnectionManagement.$listDatabases(connectionId);
|
|
||||||
},
|
|
||||||
getConnectionString(connectionId: string, includePassword: boolean): Thenable<string> {
|
|
||||||
return extHostConnectionManagement.$getConnectionString(connectionId, includePassword);
|
|
||||||
},
|
|
||||||
getUriForConnection(connectionId: string): Thenable<string> {
|
|
||||||
return extHostConnectionManagement.$getUriForConnection(connectionId);
|
|
||||||
},
|
|
||||||
connect(connectionProfile: sqlops.IConnectionProfile, saveConnection: boolean, showDashboard: boolean): Thenable<sqlops.ConnectionResult> {
|
|
||||||
return extHostConnectionManagement.$connect(connectionProfile, saveConnection, showDashboard);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// namespace: credentials
|
|
||||||
const credentials: typeof sqlops.credentials = {
|
|
||||||
registerProvider(provider: sqlops.CredentialProvider): vscode.Disposable {
|
|
||||||
return extHostCredentialManagement.$registerCredentialProvider(provider);
|
|
||||||
},
|
|
||||||
getProvider(namespaceId: string): Thenable<sqlops.CredentialProvider> {
|
|
||||||
return extHostCredentialManagement.$getCredentialProvider(namespaceId);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// namespace: objectexplorer
|
|
||||||
const objectExplorer: typeof sqlops.objectexplorer = {
|
|
||||||
getNode(connectionId: string, nodePath?: string): Thenable<sqlops.objectexplorer.ObjectExplorerNode> {
|
|
||||||
return extHostObjectExplorer.$getNode(connectionId, nodePath);
|
|
||||||
},
|
|
||||||
getActiveConnectionNodes(): Thenable<sqlops.objectexplorer.ObjectExplorerNode[]> {
|
|
||||||
return extHostObjectExplorer.$getActiveConnectionNodes();
|
|
||||||
},
|
|
||||||
findNodes(connectionId: string, type: string, schema: string, name: string, database: string, parentObjectNames: string[]): Thenable<sqlops.objectexplorer.ObjectExplorerNode[]> {
|
|
||||||
return extHostObjectExplorer.$findNodes(connectionId, type, schema, name, database, parentObjectNames);
|
|
||||||
},
|
|
||||||
getNodeActions(connectionId: string, nodePath: string): Thenable<string[]> {
|
|
||||||
return extHostObjectExplorer.$getNodeActions(connectionId, nodePath);
|
|
||||||
},
|
|
||||||
getSessionConnectionProfile(sessionId: string): Thenable<sqlops.IConnectionProfile> {
|
|
||||||
return extHostObjectExplorer.$getSessionConnectionProfile(sessionId);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// namespace: serialization
|
|
||||||
const serialization: typeof sqlops.serialization = {
|
|
||||||
registerProvider(provider: sqlops.SerializationProvider): vscode.Disposable {
|
|
||||||
// No-op this to avoid breaks in existing applications. Tested on Github - no examples,
|
|
||||||
// but I think it's safer to avoid breaking this
|
|
||||||
return undefined;
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
let registerConnectionProvider = (provider: sqlops.ConnectionProvider): vscode.Disposable => {
|
|
||||||
// Connection callbacks
|
|
||||||
provider.registerOnConnectionComplete((connSummary: sqlops.ConnectionInfoSummary) => {
|
|
||||||
extHostDataProvider.$onConnectComplete(provider.handle, connSummary);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnIntelliSenseCacheComplete((connectionUri: string) => {
|
|
||||||
extHostDataProvider.$onIntelliSenseCacheComplete(provider.handle, connectionUri);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnConnectionChanged((changedConnInfo: sqlops.ChangedConnectionInfo) => {
|
|
||||||
extHostDataProvider.$onConnectionChanged(provider.handle, changedConnInfo);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerConnectionProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerQueryProvider = (provider: sqlops.QueryProvider): vscode.Disposable => {
|
|
||||||
provider.registerOnQueryComplete((result: sqlops.QueryExecuteCompleteNotificationResult) => {
|
|
||||||
extHostDataProvider.$onQueryComplete(provider.handle, result);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnBatchStart((batchInfo: sqlops.QueryExecuteBatchNotificationParams) => {
|
|
||||||
extHostDataProvider.$onBatchStart(provider.handle, batchInfo);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnBatchComplete((batchInfo: sqlops.QueryExecuteBatchNotificationParams) => {
|
|
||||||
extHostDataProvider.$onBatchComplete(provider.handle, batchInfo);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnResultSetAvailable((resultSetInfo: sqlops.QueryExecuteResultSetNotificationParams) => {
|
|
||||||
extHostDataProvider.$onResultSetAvailable(provider.handle, resultSetInfo);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnResultSetUpdated((resultSetInfo: sqlops.QueryExecuteResultSetNotificationParams) => {
|
|
||||||
extHostDataProvider.$onResultSetUpdated(provider.handle, resultSetInfo);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnMessage((message: sqlops.QueryExecuteMessageParams) => {
|
|
||||||
extHostDataProvider.$onQueryMessage(provider.handle, message);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnEditSessionReady((ownerUri: string, success: boolean, message: string) => {
|
|
||||||
extHostDataProvider.$onEditSessionReady(provider.handle, ownerUri, success, message);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerQueryProvider(<azdata.QueryProvider>provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerObjectExplorerProvider = (provider: sqlops.ObjectExplorerProvider): vscode.Disposable => {
|
|
||||||
provider.registerOnSessionCreated((response: sqlops.ObjectExplorerSession) => {
|
|
||||||
extHostDataProvider.$onObjectExplorerSessionCreated(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (provider.registerOnSessionDisconnected) {
|
|
||||||
provider.registerOnSessionDisconnected((response: sqlops.ObjectExplorerSession) => {
|
|
||||||
extHostDataProvider.$onObjectExplorerSessionDisconnected(provider.handle, response);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
provider.registerOnExpandCompleted((response: sqlops.ObjectExplorerExpandInfo) => {
|
|
||||||
extHostDataProvider.$onObjectExplorerNodeExpanded(provider.providerId, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerObjectExplorerProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerObjectExplorerNodeProvider = (provider: sqlops.ObjectExplorerNodeProvider): vscode.Disposable => {
|
|
||||||
provider.registerOnExpandCompleted((response: sqlops.ObjectExplorerExpandInfo) => {
|
|
||||||
extHostDataProvider.$onObjectExplorerNodeExpanded(provider.providerId, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerObjectExplorerNodeProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerTaskServicesProvider = (provider: sqlops.TaskServicesProvider): vscode.Disposable => {
|
|
||||||
provider.registerOnTaskCreated((response: sqlops.TaskInfo) => {
|
|
||||||
extHostDataProvider.$onTaskCreated(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnTaskStatusChanged((response: sqlops.TaskProgressInfo) => {
|
|
||||||
extHostDataProvider.$onTaskStatusChanged(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerTaskServicesProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerFileBrowserProvider = (provider: sqlops.FileBrowserProvider): vscode.Disposable => {
|
|
||||||
provider.registerOnFileBrowserOpened((response: sqlops.FileBrowserOpenedParams) => {
|
|
||||||
extHostDataProvider.$onFileBrowserOpened(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnFolderNodeExpanded((response: sqlops.FileBrowserExpandedParams) => {
|
|
||||||
extHostDataProvider.$onFolderNodeExpanded(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
provider.registerOnFilePathsValidated((response: sqlops.FileBrowserValidatedParams) => {
|
|
||||||
extHostDataProvider.$onFilePathsValidated(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerFileBrowserProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerScriptingProvider = (provider: sqlops.ScriptingProvider): vscode.Disposable => {
|
|
||||||
provider.registerOnScriptingComplete((response: sqlops.ScriptingCompleteResult) => {
|
|
||||||
extHostDataProvider.$onScriptingComplete(provider.handle, response);
|
|
||||||
});
|
|
||||||
|
|
||||||
return extHostDataProvider.$registerScriptingProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerMetadataProvider = (provider: sqlops.MetadataProvider): vscode.Disposable => {
|
|
||||||
return extHostDataProvider.$registerMetadataProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerCapabilitiesServiceProvider = (provider: sqlops.CapabilitiesProvider): vscode.Disposable => {
|
|
||||||
return extHostDataProvider.$registerCapabilitiesServiceProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
let registerAdminServicesProvider = (provider: sqlops.AdminServicesProvider): vscode.Disposable => {
|
|
||||||
return extHostDataProvider.$registerAdminServicesProvider(provider);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// namespace: dataprotocol
|
|
||||||
const dataprotocol: typeof sqlops.dataprotocol = {
|
|
||||||
registerConnectionProvider,
|
|
||||||
registerFileBrowserProvider,
|
|
||||||
registerMetadataProvider,
|
|
||||||
registerObjectExplorerProvider,
|
|
||||||
registerObjectExplorerNodeProvider,
|
|
||||||
registerScriptingProvider,
|
|
||||||
registerTaskServicesProvider,
|
|
||||||
registerQueryProvider,
|
|
||||||
registerAdminServicesProvider,
|
|
||||||
registerCapabilitiesServiceProvider,
|
|
||||||
onDidChangeLanguageFlavor(listener: (e: sqlops.DidChangeLanguageFlavorParams) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) {
|
|
||||||
return extHostDataProvider.onDidChangeLanguageFlavor(listener, thisArgs, disposables);
|
|
||||||
},
|
|
||||||
getProvider<T extends sqlops.DataProvider>(providerId: string, providerType: sqlops.DataProviderType) {
|
|
||||||
return extHostDataProvider.getProvider<T>(providerId, providerType);
|
|
||||||
},
|
|
||||||
getProvidersByType<T extends sqlops.DataProvider>(providerType: sqlops.DataProviderType) {
|
|
||||||
return extHostDataProvider.getProvidersByType<T>(providerType);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const modelViewDialog: typeof sqlops.window.modelviewdialog = {
|
|
||||||
createDialog(title: string, dialogName?: string): sqlops.window.modelviewdialog.Dialog {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.createDialog has been deprecated, replace it with azdata.window.createModelViewDialog');
|
|
||||||
return extHostModelViewDialog.createDialog(title, dialogName, extension);
|
|
||||||
},
|
|
||||||
createTab(title: string): sqlops.window.modelviewdialog.DialogTab {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.createTab has been deprecated, replace it with azdata.window.createTab');
|
|
||||||
return extHostModelViewDialog.createTab(title, extension);
|
|
||||||
},
|
|
||||||
createButton(label: string): sqlops.window.modelviewdialog.Button {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.createButton has been deprecated, replace it with azdata.window.createButton');
|
|
||||||
return extHostModelViewDialog.createButton(label);
|
|
||||||
},
|
|
||||||
openDialog(dialog: sqlops.window.modelviewdialog.Dialog) {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.openDialog has been deprecated, replace it with azdata.window.openDialog');
|
|
||||||
return extHostModelViewDialog.openDialog(dialog as azdata.window.Dialog);
|
|
||||||
},
|
|
||||||
closeDialog(dialog: sqlops.window.modelviewdialog.Dialog) {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.closeDialog has been deprecated, replace it with azdata.window.closeDialog');
|
|
||||||
return extHostModelViewDialog.closeDialog(dialog as azdata.window.Dialog);
|
|
||||||
},
|
|
||||||
createWizardPage(title: string): sqlops.window.modelviewdialog.WizardPage {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.createWizardPage has been deprecated, replace it with azdata.window.createWizardPage');
|
|
||||||
return extHostModelViewDialog.createWizardPage(title);
|
|
||||||
},
|
|
||||||
createWizard(title: string): sqlops.window.modelviewdialog.Wizard {
|
|
||||||
console.warn('the method sqlops.window.modelviewdialog.createWizard has been deprecated, replace it with azdata.window.createWizard');
|
|
||||||
return extHostModelViewDialog.createWizard(title);
|
|
||||||
},
|
|
||||||
MessageLevel: sqlExtHostTypes.MessageLevel
|
|
||||||
};
|
|
||||||
|
|
||||||
const window: typeof sqlops.window = {
|
|
||||||
createDialog(name: string) {
|
|
||||||
console.warn('the method sqlops.window.createDialog has been deprecated, replace it with azdata.window.createWebViewDialog');
|
|
||||||
return extHostModalDialogs.createDialog(name);
|
|
||||||
},
|
|
||||||
modelviewdialog: modelViewDialog,
|
|
||||||
createWebViewDialog(name: string) {
|
|
||||||
return extHostModalDialogs.createDialog(name);
|
|
||||||
},
|
|
||||||
createModelViewDialog(title: string, dialogName?: string): sqlops.window.Dialog {
|
|
||||||
return extHostModelViewDialog.createDialog(title, dialogName, extension);
|
|
||||||
},
|
|
||||||
createTab(title: string): sqlops.window.DialogTab {
|
|
||||||
return extHostModelViewDialog.createTab(title, extension);
|
|
||||||
},
|
|
||||||
createButton(label: string): sqlops.window.Button {
|
|
||||||
return extHostModelViewDialog.createButton(label);
|
|
||||||
},
|
|
||||||
openDialog(dialog: sqlops.window.Dialog) {
|
|
||||||
return extHostModelViewDialog.openDialog(dialog as azdata.window.Dialog);
|
|
||||||
},
|
|
||||||
closeDialog(dialog: sqlops.window.Dialog) {
|
|
||||||
return extHostModelViewDialog.closeDialog(dialog as azdata.window.Dialog);
|
|
||||||
},
|
|
||||||
createWizardPage(title: string): sqlops.window.WizardPage {
|
|
||||||
return extHostModelViewDialog.createWizardPage(title);
|
|
||||||
},
|
|
||||||
createWizard(title: string): sqlops.window.Wizard {
|
|
||||||
return extHostModelViewDialog.createWizard(title);
|
|
||||||
},
|
|
||||||
MessageLevel: sqlExtHostTypes.MessageLevel
|
|
||||||
};
|
|
||||||
|
|
||||||
const tasks: typeof sqlops.tasks = {
|
|
||||||
registerTask(id: string, task: (...args: any[]) => any, thisArgs?: any): vscode.Disposable {
|
|
||||||
return extHostTasks.registerTask(id, task, thisArgs);
|
|
||||||
},
|
|
||||||
startBackgroundOperation(operationInfo: sqlops.BackgroundOperationInfo): void {
|
|
||||||
extHostBackgroundTaskManagement.$registerTask(operationInfo);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const workspace: typeof sqlops.workspace = {
|
|
||||||
onDidOpenDashboard: extHostDashboard.onDidOpenDashboard,
|
|
||||||
onDidChangeToDashboard: extHostDashboard.onDidChangeToDashboard,
|
|
||||||
createModelViewEditor(title: string, options?: sqlops.ModelViewEditorOptions): sqlops.workspace.ModelViewEditor {
|
|
||||||
return extHostModelViewDialog.createModelViewEditor(title, extension, options);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const dashboard = {
|
|
||||||
registerWebviewProvider(widgetId: string, handler: (webview: sqlops.DashboardWebview) => void) {
|
|
||||||
extHostWebviewWidgets.$registerProvider(widgetId, handler);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const ui = {
|
|
||||||
registerModelViewProvider(modelViewId: string, handler: (view: sqlops.ModelView) => void): void {
|
|
||||||
extHostModelView.$registerProvider(modelViewId, handler, extension);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// namespace: queryeditor
|
|
||||||
const queryEditor: typeof sqlops.queryeditor = {
|
|
||||||
|
|
||||||
connect(fileUri: string, connectionId: string): Thenable<void> {
|
|
||||||
return extHostQueryEditor.$connect(fileUri, connectionId);
|
|
||||||
},
|
|
||||||
|
|
||||||
runQuery(fileUri: string): void {
|
|
||||||
extHostQueryEditor.$runQuery(fileUri);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const extensions: typeof sqlops.extensions = {
|
|
||||||
install(vsixPath: string): Thenable<string> {
|
|
||||||
return extHostExtensionManagement.$install(vsixPath);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return {
|
|
||||||
connection,
|
|
||||||
credentials,
|
|
||||||
objectexplorer: objectExplorer,
|
|
||||||
serialization,
|
|
||||||
dataprotocol,
|
|
||||||
DataProviderType: sqlExtHostTypes.DataProviderType,
|
|
||||||
DeclarativeDataType: sqlExtHostTypes.DeclarativeDataType,
|
|
||||||
ServiceOptionType: sqlExtHostTypes.ServiceOptionType,
|
|
||||||
ConnectionOptionSpecialType: sqlExtHostTypes.ConnectionOptionSpecialType,
|
|
||||||
EditRowState: sqlExtHostTypes.EditRowState,
|
|
||||||
MetadataType: sqlExtHostTypes.MetadataType,
|
|
||||||
TaskStatus: sqlExtHostTypes.TaskStatus,
|
|
||||||
TaskExecutionMode: sqlExtHostTypes.TaskExecutionMode,
|
|
||||||
ScriptOperation: sqlExtHostTypes.ScriptOperation,
|
|
||||||
window,
|
|
||||||
tasks,
|
|
||||||
dashboard,
|
|
||||||
workspace,
|
|
||||||
queryeditor: queryEditor,
|
|
||||||
ui: ui,
|
|
||||||
StatusIndicator: sqlExtHostTypes.StatusIndicator,
|
|
||||||
CardType: sqlExtHostTypes.CardType,
|
|
||||||
Orientation: sqlExtHostTypes.Orientation,
|
|
||||||
SqlThemeIcon: sqlExtHostTypes.SqlThemeIcon,
|
|
||||||
TreeComponentItem: sqlExtHostTypes.TreeComponentItem,
|
|
||||||
AzureResource: sqlExtHostTypes.AzureResource,
|
|
||||||
extensions: extensions,
|
|
||||||
TreeItem: sqlExtHostTypes.TreeItem
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method instantiates and returns the extension API surface
|
* This method instantiates and returns the extension API surface
|
||||||
*/
|
*/
|
||||||
export function createAzdataApiFactory(accessor: ServicesAccessor): IAzdataExtensionApiFactory {
|
export function createAdsApiFactory(accessor: ServicesAccessor): IAdsExtensionApiFactory {
|
||||||
|
|
||||||
const uriTransformer = accessor.get(IURITransformerService);
|
const uriTransformer = accessor.get(IURITransformerService);
|
||||||
const rpcProtocol = accessor.get(IExtHostRpcService);
|
const rpcProtocol = accessor.get(IExtHostRpcService);
|
||||||
const extHostLogService = accessor.get(ILogService);
|
const extHostLogService = accessor.get(ILogService);
|
||||||
@@ -463,7 +78,8 @@ export function createAzdataApiFactory(accessor: ServicesAccessor): IAzdataExten
|
|||||||
const extHostExtensionManagement = rpcProtocol.set(SqlExtHostContext.ExtHostExtensionManagement, new ExtHostExtensionManagement(rpcProtocol));
|
const extHostExtensionManagement = rpcProtocol.set(SqlExtHostContext.ExtHostExtensionManagement, new ExtHostExtensionManagement(rpcProtocol));
|
||||||
|
|
||||||
|
|
||||||
return function (extension: IExtensionDescription): typeof azdata {
|
return {
|
||||||
|
azdata: function (extension: IExtensionDescription): typeof azdata {
|
||||||
// namespace: connection
|
// namespace: connection
|
||||||
const connection: typeof azdata.connection = {
|
const connection: typeof azdata.connection = {
|
||||||
// "azdata" API definition
|
// "azdata" API definition
|
||||||
@@ -834,8 +450,8 @@ export function createAzdataApiFactory(accessor: ServicesAccessor): IAzdataExten
|
|||||||
return extHostQueryEditor.$connect(fileUri, connectionId);
|
return extHostQueryEditor.$connect(fileUri, connectionId);
|
||||||
},
|
},
|
||||||
|
|
||||||
runQuery(fileUri: string, options?: Map<string, string>, runCurrentQuery: boolean = true): void {
|
runQuery(fileUri: string, options?: Map<string, string>): void {
|
||||||
extHostQueryEditor.$runQuery(fileUri, runCurrentQuery);
|
extHostQueryEditor.$runQuery(fileUri);
|
||||||
},
|
},
|
||||||
|
|
||||||
registerQueryEventListener(listener: azdata.queryeditor.QueryEventListener): void {
|
registerQueryEventListener(listener: azdata.queryeditor.QueryEventListener): void {
|
||||||
@@ -932,5 +548,371 @@ export function createAzdataApiFactory(accessor: ServicesAccessor): IAzdataExten
|
|||||||
ExtensionNodeType: sqlExtHostTypes.ExtensionNodeType,
|
ExtensionNodeType: sqlExtHostTypes.ExtensionNodeType,
|
||||||
ColumnSizingMode: sqlExtHostTypes.ColumnSizingMode
|
ColumnSizingMode: sqlExtHostTypes.ColumnSizingMode
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
// "sqlops" namespace provided for back-compat only, add new interfaces to "azdata"
|
||||||
|
sqlops: function (extension: IExtensionDescription): typeof sqlops {
|
||||||
|
|
||||||
|
extHostExtensionManagement.$showObsoleteExtensionApiUsageNotification(localize('ObsoleteApiModuleMessage', "The extension \"{0}\" is using sqlops module which has been replaced by azdata module, the sqlops module will be removed in a future release.", extension.identifier.value));
|
||||||
|
// namespace: connection
|
||||||
|
const connection: typeof sqlops.connection = {
|
||||||
|
getActiveConnections(): Thenable<sqlops.connection.Connection[]> {
|
||||||
|
return extHostConnectionManagement.$getActiveConnections();
|
||||||
|
},
|
||||||
|
getCurrentConnection(): Thenable<sqlops.connection.Connection> {
|
||||||
|
return extHostConnectionManagement.$getSqlOpsCurrentConnection();
|
||||||
|
},
|
||||||
|
getCredentials(connectionId: string): Thenable<{ [name: string]: string }> {
|
||||||
|
return extHostConnectionManagement.$getCredentials(connectionId);
|
||||||
|
},
|
||||||
|
getServerInfo(connectionId: string): Thenable<sqlops.ServerInfo> {
|
||||||
|
return extHostConnectionManagement.$getServerInfo(connectionId);
|
||||||
|
},
|
||||||
|
openConnectionDialog(providers?: string[], initialConnectionProfile?: sqlops.IConnectionProfile, connectionCompletionOptions?: sqlops.IConnectionCompletionOptions): Thenable<sqlops.connection.Connection> {
|
||||||
|
return extHostConnectionManagement.$openConnectionDialog(providers, initialConnectionProfile, connectionCompletionOptions);
|
||||||
|
},
|
||||||
|
listDatabases(connectionId: string): Thenable<string[]> {
|
||||||
|
return extHostConnectionManagement.$listDatabases(connectionId);
|
||||||
|
},
|
||||||
|
getConnectionString(connectionId: string, includePassword: boolean): Thenable<string> {
|
||||||
|
return extHostConnectionManagement.$getConnectionString(connectionId, includePassword);
|
||||||
|
},
|
||||||
|
getUriForConnection(connectionId: string): Thenable<string> {
|
||||||
|
return extHostConnectionManagement.$getUriForConnection(connectionId);
|
||||||
|
},
|
||||||
|
connect(connectionProfile: sqlops.IConnectionProfile, saveConnection: boolean, showDashboard: boolean): Thenable<sqlops.ConnectionResult> {
|
||||||
|
return extHostConnectionManagement.$connect(connectionProfile, saveConnection, showDashboard);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// namespace: credentials
|
||||||
|
const credentials: typeof sqlops.credentials = {
|
||||||
|
registerProvider(provider: sqlops.CredentialProvider): vscode.Disposable {
|
||||||
|
return extHostCredentialManagement.$registerCredentialProvider(provider);
|
||||||
|
},
|
||||||
|
getProvider(namespaceId: string): Thenable<sqlops.CredentialProvider> {
|
||||||
|
return extHostCredentialManagement.$getCredentialProvider(namespaceId);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// namespace: objectexplorer
|
||||||
|
const objectExplorer: typeof sqlops.objectexplorer = {
|
||||||
|
getNode(connectionId: string, nodePath?: string): Thenable<sqlops.objectexplorer.ObjectExplorerNode> {
|
||||||
|
return extHostObjectExplorer.$getNode(connectionId, nodePath);
|
||||||
|
},
|
||||||
|
getActiveConnectionNodes(): Thenable<sqlops.objectexplorer.ObjectExplorerNode[]> {
|
||||||
|
return extHostObjectExplorer.$getActiveConnectionNodes();
|
||||||
|
},
|
||||||
|
findNodes(connectionId: string, type: string, schema: string, name: string, database: string, parentObjectNames: string[]): Thenable<sqlops.objectexplorer.ObjectExplorerNode[]> {
|
||||||
|
return extHostObjectExplorer.$findNodes(connectionId, type, schema, name, database, parentObjectNames);
|
||||||
|
},
|
||||||
|
getNodeActions(connectionId: string, nodePath: string): Thenable<string[]> {
|
||||||
|
return extHostObjectExplorer.$getNodeActions(connectionId, nodePath);
|
||||||
|
},
|
||||||
|
getSessionConnectionProfile(sessionId: string): Thenable<sqlops.IConnectionProfile> {
|
||||||
|
return extHostObjectExplorer.$getSessionConnectionProfile(sessionId);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// namespace: serialization
|
||||||
|
const serialization: typeof sqlops.serialization = {
|
||||||
|
registerProvider(provider: sqlops.SerializationProvider): vscode.Disposable {
|
||||||
|
// No-op this to avoid breaks in existing applications. Tested on Github - no examples,
|
||||||
|
// but I think it's safer to avoid breaking this
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
let registerConnectionProvider = (provider: sqlops.ConnectionProvider): vscode.Disposable => {
|
||||||
|
// Connection callbacks
|
||||||
|
provider.registerOnConnectionComplete((connSummary: sqlops.ConnectionInfoSummary) => {
|
||||||
|
extHostDataProvider.$onConnectComplete(provider.handle, connSummary);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnIntelliSenseCacheComplete((connectionUri: string) => {
|
||||||
|
extHostDataProvider.$onIntelliSenseCacheComplete(provider.handle, connectionUri);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnConnectionChanged((changedConnInfo: sqlops.ChangedConnectionInfo) => {
|
||||||
|
extHostDataProvider.$onConnectionChanged(provider.handle, changedConnInfo);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerConnectionProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerQueryProvider = (provider: sqlops.QueryProvider): vscode.Disposable => {
|
||||||
|
provider.registerOnQueryComplete((result: sqlops.QueryExecuteCompleteNotificationResult) => {
|
||||||
|
extHostDataProvider.$onQueryComplete(provider.handle, result);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnBatchStart((batchInfo: sqlops.QueryExecuteBatchNotificationParams) => {
|
||||||
|
extHostDataProvider.$onBatchStart(provider.handle, batchInfo);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnBatchComplete((batchInfo: sqlops.QueryExecuteBatchNotificationParams) => {
|
||||||
|
extHostDataProvider.$onBatchComplete(provider.handle, batchInfo);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnResultSetAvailable((resultSetInfo: sqlops.QueryExecuteResultSetNotificationParams) => {
|
||||||
|
extHostDataProvider.$onResultSetAvailable(provider.handle, resultSetInfo);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnResultSetUpdated((resultSetInfo: sqlops.QueryExecuteResultSetNotificationParams) => {
|
||||||
|
extHostDataProvider.$onResultSetUpdated(provider.handle, resultSetInfo);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnMessage((message: sqlops.QueryExecuteMessageParams) => {
|
||||||
|
extHostDataProvider.$onQueryMessage(provider.handle, message);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnEditSessionReady((ownerUri: string, success: boolean, message: string) => {
|
||||||
|
extHostDataProvider.$onEditSessionReady(provider.handle, ownerUri, success, message);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerQueryProvider(<azdata.QueryProvider>provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerObjectExplorerProvider = (provider: sqlops.ObjectExplorerProvider): vscode.Disposable => {
|
||||||
|
provider.registerOnSessionCreated((response: sqlops.ObjectExplorerSession) => {
|
||||||
|
extHostDataProvider.$onObjectExplorerSessionCreated(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (provider.registerOnSessionDisconnected) {
|
||||||
|
provider.registerOnSessionDisconnected((response: sqlops.ObjectExplorerSession) => {
|
||||||
|
extHostDataProvider.$onObjectExplorerSessionDisconnected(provider.handle, response);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
provider.registerOnExpandCompleted((response: sqlops.ObjectExplorerExpandInfo) => {
|
||||||
|
extHostDataProvider.$onObjectExplorerNodeExpanded(provider.providerId, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerObjectExplorerProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerObjectExplorerNodeProvider = (provider: sqlops.ObjectExplorerNodeProvider): vscode.Disposable => {
|
||||||
|
provider.registerOnExpandCompleted((response: sqlops.ObjectExplorerExpandInfo) => {
|
||||||
|
extHostDataProvider.$onObjectExplorerNodeExpanded(provider.providerId, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerObjectExplorerNodeProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerTaskServicesProvider = (provider: sqlops.TaskServicesProvider): vscode.Disposable => {
|
||||||
|
provider.registerOnTaskCreated((response: sqlops.TaskInfo) => {
|
||||||
|
extHostDataProvider.$onTaskCreated(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnTaskStatusChanged((response: sqlops.TaskProgressInfo) => {
|
||||||
|
extHostDataProvider.$onTaskStatusChanged(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerTaskServicesProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerFileBrowserProvider = (provider: sqlops.FileBrowserProvider): vscode.Disposable => {
|
||||||
|
provider.registerOnFileBrowserOpened((response: sqlops.FileBrowserOpenedParams) => {
|
||||||
|
extHostDataProvider.$onFileBrowserOpened(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnFolderNodeExpanded((response: sqlops.FileBrowserExpandedParams) => {
|
||||||
|
extHostDataProvider.$onFolderNodeExpanded(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
provider.registerOnFilePathsValidated((response: sqlops.FileBrowserValidatedParams) => {
|
||||||
|
extHostDataProvider.$onFilePathsValidated(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerFileBrowserProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerScriptingProvider = (provider: sqlops.ScriptingProvider): vscode.Disposable => {
|
||||||
|
provider.registerOnScriptingComplete((response: sqlops.ScriptingCompleteResult) => {
|
||||||
|
extHostDataProvider.$onScriptingComplete(provider.handle, response);
|
||||||
|
});
|
||||||
|
|
||||||
|
return extHostDataProvider.$registerScriptingProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerMetadataProvider = (provider: sqlops.MetadataProvider): vscode.Disposable => {
|
||||||
|
return extHostDataProvider.$registerMetadataProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerCapabilitiesServiceProvider = (provider: sqlops.CapabilitiesProvider): vscode.Disposable => {
|
||||||
|
return extHostDataProvider.$registerCapabilitiesServiceProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
let registerAdminServicesProvider = (provider: sqlops.AdminServicesProvider): vscode.Disposable => {
|
||||||
|
return extHostDataProvider.$registerAdminServicesProvider(provider);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// namespace: dataprotocol
|
||||||
|
const dataprotocol: typeof sqlops.dataprotocol = {
|
||||||
|
registerConnectionProvider,
|
||||||
|
registerFileBrowserProvider,
|
||||||
|
registerMetadataProvider,
|
||||||
|
registerObjectExplorerProvider,
|
||||||
|
registerObjectExplorerNodeProvider,
|
||||||
|
registerScriptingProvider,
|
||||||
|
registerTaskServicesProvider,
|
||||||
|
registerQueryProvider,
|
||||||
|
registerAdminServicesProvider,
|
||||||
|
registerCapabilitiesServiceProvider,
|
||||||
|
onDidChangeLanguageFlavor(listener: (e: sqlops.DidChangeLanguageFlavorParams) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) {
|
||||||
|
return extHostDataProvider.onDidChangeLanguageFlavor(listener, thisArgs, disposables);
|
||||||
|
},
|
||||||
|
getProvider<T extends sqlops.DataProvider>(providerId: string, providerType: sqlops.DataProviderType) {
|
||||||
|
return extHostDataProvider.getProvider<T>(providerId, providerType);
|
||||||
|
},
|
||||||
|
getProvidersByType<T extends sqlops.DataProvider>(providerType: sqlops.DataProviderType) {
|
||||||
|
return extHostDataProvider.getProvidersByType<T>(providerType);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const modelViewDialog: typeof sqlops.window.modelviewdialog = {
|
||||||
|
createDialog(title: string, dialogName?: string): sqlops.window.modelviewdialog.Dialog {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.createDialog has been deprecated, replace it with azdata.window.createModelViewDialog');
|
||||||
|
return extHostModelViewDialog.createDialog(title, dialogName, extension);
|
||||||
|
},
|
||||||
|
createTab(title: string): sqlops.window.modelviewdialog.DialogTab {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.createTab has been deprecated, replace it with azdata.window.createTab');
|
||||||
|
return extHostModelViewDialog.createTab(title, extension);
|
||||||
|
},
|
||||||
|
createButton(label: string): sqlops.window.modelviewdialog.Button {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.createButton has been deprecated, replace it with azdata.window.createButton');
|
||||||
|
return extHostModelViewDialog.createButton(label);
|
||||||
|
},
|
||||||
|
openDialog(dialog: sqlops.window.modelviewdialog.Dialog) {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.openDialog has been deprecated, replace it with azdata.window.openDialog');
|
||||||
|
return extHostModelViewDialog.openDialog(dialog as azdata.window.Dialog);
|
||||||
|
},
|
||||||
|
closeDialog(dialog: sqlops.window.modelviewdialog.Dialog) {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.closeDialog has been deprecated, replace it with azdata.window.closeDialog');
|
||||||
|
return extHostModelViewDialog.closeDialog(dialog as azdata.window.Dialog);
|
||||||
|
},
|
||||||
|
createWizardPage(title: string): sqlops.window.modelviewdialog.WizardPage {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.createWizardPage has been deprecated, replace it with azdata.window.createWizardPage');
|
||||||
|
return extHostModelViewDialog.createWizardPage(title);
|
||||||
|
},
|
||||||
|
createWizard(title: string): sqlops.window.modelviewdialog.Wizard {
|
||||||
|
console.warn('the method sqlops.window.modelviewdialog.createWizard has been deprecated, replace it with azdata.window.createWizard');
|
||||||
|
return extHostModelViewDialog.createWizard(title);
|
||||||
|
},
|
||||||
|
MessageLevel: sqlExtHostTypes.MessageLevel
|
||||||
|
};
|
||||||
|
|
||||||
|
const window: typeof sqlops.window = {
|
||||||
|
createDialog(name: string) {
|
||||||
|
console.warn('the method sqlops.window.createDialog has been deprecated, replace it with azdata.window.createWebViewDialog');
|
||||||
|
return extHostModalDialogs.createDialog(name);
|
||||||
|
},
|
||||||
|
modelviewdialog: modelViewDialog,
|
||||||
|
createWebViewDialog(name: string) {
|
||||||
|
return extHostModalDialogs.createDialog(name);
|
||||||
|
},
|
||||||
|
createModelViewDialog(title: string, dialogName?: string): sqlops.window.Dialog {
|
||||||
|
return extHostModelViewDialog.createDialog(title, dialogName, extension);
|
||||||
|
},
|
||||||
|
createTab(title: string): sqlops.window.DialogTab {
|
||||||
|
return extHostModelViewDialog.createTab(title, extension);
|
||||||
|
},
|
||||||
|
createButton(label: string): sqlops.window.Button {
|
||||||
|
return extHostModelViewDialog.createButton(label);
|
||||||
|
},
|
||||||
|
openDialog(dialog: sqlops.window.Dialog) {
|
||||||
|
return extHostModelViewDialog.openDialog(dialog as azdata.window.Dialog);
|
||||||
|
},
|
||||||
|
closeDialog(dialog: sqlops.window.Dialog) {
|
||||||
|
return extHostModelViewDialog.closeDialog(dialog as azdata.window.Dialog);
|
||||||
|
},
|
||||||
|
createWizardPage(title: string): sqlops.window.WizardPage {
|
||||||
|
return extHostModelViewDialog.createWizardPage(title);
|
||||||
|
},
|
||||||
|
createWizard(title: string): sqlops.window.Wizard {
|
||||||
|
return extHostModelViewDialog.createWizard(title);
|
||||||
|
},
|
||||||
|
MessageLevel: sqlExtHostTypes.MessageLevel
|
||||||
|
};
|
||||||
|
|
||||||
|
const tasks: typeof sqlops.tasks = {
|
||||||
|
registerTask(id: string, task: (...args: any[]) => any, thisArgs?: any): vscode.Disposable {
|
||||||
|
return extHostTasks.registerTask(id, task, thisArgs);
|
||||||
|
},
|
||||||
|
startBackgroundOperation(operationInfo: sqlops.BackgroundOperationInfo): void {
|
||||||
|
extHostBackgroundTaskManagement.$registerTask(operationInfo);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const workspace: typeof sqlops.workspace = {
|
||||||
|
onDidOpenDashboard: extHostDashboard.onDidOpenDashboard,
|
||||||
|
onDidChangeToDashboard: extHostDashboard.onDidChangeToDashboard,
|
||||||
|
createModelViewEditor(title: string, options?: sqlops.ModelViewEditorOptions): sqlops.workspace.ModelViewEditor {
|
||||||
|
return extHostModelViewDialog.createModelViewEditor(title, extension, options);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const dashboard = {
|
||||||
|
registerWebviewProvider(widgetId: string, handler: (webview: sqlops.DashboardWebview) => void) {
|
||||||
|
extHostWebviewWidgets.$registerProvider(widgetId, handler);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const ui = {
|
||||||
|
registerModelViewProvider(modelViewId: string, handler: (view: sqlops.ModelView) => void): void {
|
||||||
|
extHostModelView.$registerProvider(modelViewId, handler, extension);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// namespace: queryeditor
|
||||||
|
const queryEditor: typeof sqlops.queryeditor = {
|
||||||
|
|
||||||
|
connect(fileUri: string, connectionId: string): Thenable<void> {
|
||||||
|
return extHostQueryEditor.$connect(fileUri, connectionId);
|
||||||
|
},
|
||||||
|
|
||||||
|
runQuery(fileUri: string): void {
|
||||||
|
extHostQueryEditor.$runQuery(fileUri);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const extensions: typeof sqlops.extensions = {
|
||||||
|
install(vsixPath: string): Thenable<string> {
|
||||||
|
return extHostExtensionManagement.$install(vsixPath);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
connection,
|
||||||
|
credentials,
|
||||||
|
objectexplorer: objectExplorer,
|
||||||
|
serialization,
|
||||||
|
dataprotocol,
|
||||||
|
DataProviderType: sqlExtHostTypes.DataProviderType,
|
||||||
|
DeclarativeDataType: sqlExtHostTypes.DeclarativeDataType,
|
||||||
|
ServiceOptionType: sqlExtHostTypes.ServiceOptionType,
|
||||||
|
ConnectionOptionSpecialType: sqlExtHostTypes.ConnectionOptionSpecialType,
|
||||||
|
EditRowState: sqlExtHostTypes.EditRowState,
|
||||||
|
MetadataType: sqlExtHostTypes.MetadataType,
|
||||||
|
TaskStatus: sqlExtHostTypes.TaskStatus,
|
||||||
|
TaskExecutionMode: sqlExtHostTypes.TaskExecutionMode,
|
||||||
|
ScriptOperation: sqlExtHostTypes.ScriptOperation,
|
||||||
|
window,
|
||||||
|
tasks,
|
||||||
|
dashboard,
|
||||||
|
workspace,
|
||||||
|
queryeditor: queryEditor,
|
||||||
|
ui: ui,
|
||||||
|
StatusIndicator: sqlExtHostTypes.StatusIndicator,
|
||||||
|
CardType: sqlExtHostTypes.CardType,
|
||||||
|
Orientation: sqlExtHostTypes.Orientation,
|
||||||
|
SqlThemeIcon: sqlExtHostTypes.SqlThemeIcon,
|
||||||
|
TreeComponentItem: sqlExtHostTypes.TreeComponentItem,
|
||||||
|
AzureResource: sqlExtHostTypes.AzureResource,
|
||||||
|
extensions: extensions,
|
||||||
|
TreeItem: sqlExtHostTypes.TreeItem
|
||||||
|
};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import { CLIServer } from 'vs/workbench/api/node/extHostCLIServer';
|
|||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { Schemas } from 'vs/base/common/network';
|
||||||
|
|
||||||
import { createAzdataApiFactory, createSqlopsApiFactory } from 'sql/workbench/api/common/sqlExtHost.api.impl'; // {{SQL CARBON EDIT}} use our extension initalizer
|
import { createAdsApiFactory } from 'sql/workbench/api/common/sqlExtHost.api.impl'; // {{SQL CARBON EDIT}} use our extension initalizer
|
||||||
import { AzdataNodeModuleFactory, SqlopsNodeModuleFactory } from 'sql/workbench/api/node/extHostRequireInterceptor'; // {{SQL CARBON EDIT}} use our extension initalizer
|
import { AzdataNodeModuleFactory, SqlopsNodeModuleFactory } from 'sql/workbench/api/node/extHostRequireInterceptor'; // {{SQL CARBON EDIT}} use our extension initalizer
|
||||||
|
|
||||||
export class ExtHostExtensionService extends AbstractExtHostExtensionService {
|
export class ExtHostExtensionService extends AbstractExtHostExtensionService {
|
||||||
@@ -22,8 +22,7 @@ export class ExtHostExtensionService extends AbstractExtHostExtensionService {
|
|||||||
protected async _beforeAlmostReadyToRunExtensions(): Promise<void> {
|
protected async _beforeAlmostReadyToRunExtensions(): Promise<void> {
|
||||||
// initialize API and register actors
|
// initialize API and register actors
|
||||||
const extensionApiFactory = this._instaService.invokeFunction(createApiFactoryAndRegisterActors);
|
const extensionApiFactory = this._instaService.invokeFunction(createApiFactoryAndRegisterActors);
|
||||||
const sqlopsExtensionApiFactory = this._instaService.invokeFunction(createSqlopsApiFactory); // {{SQL CARBON EDIT}} // add factory
|
const adsExtensionApiFactory = this._instaService.invokeFunction(createAdsApiFactory); // {{SQL CARBON EDIT}} // add factory
|
||||||
const azdataExtensionApiFactory = this._instaService.invokeFunction(createAzdataApiFactory); // {{SQL CARBON EDIT}} // add factory
|
|
||||||
|
|
||||||
// Register Download command
|
// Register Download command
|
||||||
this._instaService.createInstance(ExtHostDownloadService);
|
this._instaService.createInstance(ExtHostDownloadService);
|
||||||
@@ -37,8 +36,8 @@ export class ExtHostExtensionService extends AbstractExtHostExtensionService {
|
|||||||
// Module loading tricks
|
// Module loading tricks
|
||||||
const configProvider = await this._extHostConfiguration.getConfigProvider();
|
const configProvider = await this._extHostConfiguration.getConfigProvider();
|
||||||
const extensionPaths = await this.getExtensionPathIndex();
|
const extensionPaths = await this.getExtensionPathIndex();
|
||||||
NodeModuleRequireInterceptor.INSTANCE.register(new AzdataNodeModuleFactory(azdataExtensionApiFactory, extensionPaths)); // {{SQL CARBON EDIT}} // add node module
|
NodeModuleRequireInterceptor.INSTANCE.register(new AzdataNodeModuleFactory(adsExtensionApiFactory.azdata, extensionPaths)); // {{SQL CARBON EDIT}} // add node module
|
||||||
NodeModuleRequireInterceptor.INSTANCE.register(new SqlopsNodeModuleFactory(sqlopsExtensionApiFactory, extensionPaths)); // {{SQL CARBON EDIT}} // add node module
|
NodeModuleRequireInterceptor.INSTANCE.register(new SqlopsNodeModuleFactory(adsExtensionApiFactory.sqlops, extensionPaths)); // {{SQL CARBON EDIT}} // add node module
|
||||||
NodeModuleRequireInterceptor.INSTANCE.register(new VSCodeNodeModuleFactory(extensionApiFactory, extensionPaths, this._registry, configProvider));
|
NodeModuleRequireInterceptor.INSTANCE.register(new VSCodeNodeModuleFactory(extensionApiFactory, extensionPaths, this._registry, configProvider));
|
||||||
NodeModuleRequireInterceptor.INSTANCE.register(new KeytarNodeModuleFactory(this._extHostContext.getProxy(MainContext.MainThreadKeytar), this._initData.environment));
|
NodeModuleRequireInterceptor.INSTANCE.register(new KeytarNodeModuleFactory(this._extHostContext.getProxy(MainContext.MainThreadKeytar), this._initData.environment));
|
||||||
if (this._initData.remote.isRemote) {
|
if (this._initData.remote.isRemote) {
|
||||||
|
|||||||
Reference in New Issue
Block a user