Add openQueryDocument API (#16117)

* Add openQueryDocument API

* Remove open call

* Change try name
This commit is contained in:
Charles Gagnon
2021-07-13 17:56:35 -07:00
committed by GitHub
parent a7311764be
commit a0f46fec65
7 changed files with 40 additions and 11 deletions

View File

@@ -9,6 +9,7 @@ import * as azdata from 'azdata';
import { IQueryEvent } from 'sql/workbench/services/query/common/queryModel';
import { mssqlProviderName } from 'sql/platform/connection/common/constants';
import { Disposable } from 'vs/workbench/api/common/extHostTypes';
import { URI } from 'vs/base/common/uri';
class ExtHostQueryDocument implements azdata.queryeditor.QueryDocument {
constructor(
@@ -77,4 +78,7 @@ export class ExtHostQueryEditor implements ExtHostQueryEditorShape {
});
}
public createQueryDocument(options?: { content?: string }, providerId?: string): Promise<URI> {
return this._proxy.$createQueryDocument(options, providerId).then(data => URI.revive(data));
}
}

View File

@@ -35,6 +35,7 @@ import { IExtensionApiFactory as vsIApiFactory, createApiFactoryAndRegisterActor
import { IExtHostCommands } from 'vs/workbench/api/common/extHostCommands';
import { ExtHostWorkspace } from 'sql/workbench/api/common/extHostWorkspace';
import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService';
import { URI } from 'vs/base/common/uri';
export interface IAzdataExtensionApiFactory {
(extension: IExtensionDescription): typeof azdata;
@@ -96,7 +97,6 @@ export function createAdsApiFactory(accessor: ServicesAccessor): IAdsExtensionAp
const extHostNotebookDocumentsAndEditors = rpcProtocol.set(SqlExtHostContext.ExtHostNotebookDocumentsAndEditors, new ExtHostNotebookDocumentsAndEditors(rpcProtocol));
const extHostExtensionManagement = rpcProtocol.set(SqlExtHostContext.ExtHostExtensionManagement, new ExtHostExtensionManagement(rpcProtocol));
const extHostWorkspace = rpcProtocol.set(SqlExtHostContext.ExtHostWorkspace, new ExtHostWorkspace(rpcProtocol));
return {
azdata: function (extension: IExtensionDescription): typeof azdata {
// namespace: connection
@@ -506,6 +506,15 @@ export function createAdsApiFactory(accessor: ServicesAccessor): IAdsExtensionAp
getQueryDocument(fileUri: string): Thenable<azdata.queryeditor.QueryDocument> {
return extHostQueryEditor.$getQueryDocument(fileUri);
},
openQueryDocument(options?: { content?: string; }, providerId?: string): Thenable<azdata.queryeditor.QueryDocument> {
let uriPromise: Thenable<URI>;
uriPromise = extHostQueryEditor.createQueryDocument(options, providerId);
return uriPromise.then(uri => {
return extHostQueryEditor.$getQueryDocument(uri.toString());
});
}
};

View File

@@ -7,7 +7,7 @@ import {
createMainContextProxyIdentifier as createMainId,
createExtHostContextProxyIdentifier as createExtId
} from 'vs/workbench/services/extensions/common/proxyIdentifier';
import { UriComponents } from 'vs/base/common/uri';
import { URI, UriComponents } from 'vs/base/common/uri';
import { IDisposable } from 'vs/base/common/lifecycle';
@@ -847,6 +847,7 @@ export interface MainThreadQueryEditorShape extends IDisposable {
$setQueryExecutionOptions(fileUri: string, options: azdata.QueryExecutionOptions): Thenable<void>;
$registerQueryInfoListener(handle: number): void;
$unregisterQueryInfoListener(handle: number): void;
$createQueryDocument(options?: { content?: string }, providerId?: string): Promise<URI>;
}
export interface ExtHostNotebookShape {