mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 11:01:37 -05:00
Consolidate 2 context endpoints to just one (#24276)
This commit is contained in:
@@ -1567,10 +1567,6 @@ export interface ServerContextualizationParams {
|
|||||||
ownerUri: string;
|
ownerUri: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export namespace GenerateServerContextualizationRequest {
|
|
||||||
export const type = new RequestType<ServerContextualizationParams, azdata.contextualization.GenerateServerContextualizationResult, void, void>('metadata/generateServerContext');
|
|
||||||
}
|
|
||||||
|
|
||||||
export namespace GetServerContextualizationRequest {
|
export namespace GetServerContextualizationRequest {
|
||||||
export const type = new RequestType<ServerContextualizationParams, azdata.contextualization.GetServerContextualizationResult, void, void>('metadata/getServerContext');
|
export const type = new RequestType<ServerContextualizationParams, azdata.contextualization.GetServerContextualizationResult, void, void>('metadata/getServerContext');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1310,7 +1310,7 @@ export class ExecutionPlanServiceFeature extends SqlOpsFeature<undefined> {
|
|||||||
*/
|
*/
|
||||||
export class ServerContextualizationServiceFeature extends SqlOpsFeature<undefined> {
|
export class ServerContextualizationServiceFeature extends SqlOpsFeature<undefined> {
|
||||||
private static readonly messagesTypes: RPCMessageType[] = [
|
private static readonly messagesTypes: RPCMessageType[] = [
|
||||||
contracts.GenerateServerContextualizationRequest.type
|
contracts.GetServerContextualizationRequest.type
|
||||||
];
|
];
|
||||||
|
|
||||||
constructor(client: SqlOpsDataClient) {
|
constructor(client: SqlOpsDataClient) {
|
||||||
@@ -1330,20 +1330,6 @@ export class ServerContextualizationServiceFeature extends SqlOpsFeature<undefin
|
|||||||
protected registerProvider(options: undefined): Disposable {
|
protected registerProvider(options: undefined): Disposable {
|
||||||
const client = this._client;
|
const client = this._client;
|
||||||
|
|
||||||
const generateServerContextualization = (ownerUri: string): Thenable<azdata.contextualization.GenerateServerContextualizationResult> => {
|
|
||||||
const params: contracts.ServerContextualizationParams = {
|
|
||||||
ownerUri: ownerUri
|
|
||||||
};
|
|
||||||
|
|
||||||
return client.sendRequest(contracts.GenerateServerContextualizationRequest.type, params).then(
|
|
||||||
r => r,
|
|
||||||
e => {
|
|
||||||
client.logFailedRequest(contracts.GenerateServerContextualizationRequest.type, e);
|
|
||||||
return Promise.reject(e);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const getServerContextualization = (ownerUri: string): Thenable<azdata.contextualization.GetServerContextualizationResult> => {
|
const getServerContextualization = (ownerUri: string): Thenable<azdata.contextualization.GetServerContextualizationResult> => {
|
||||||
const params: contracts.ServerContextualizationParams = {
|
const params: contracts.ServerContextualizationParams = {
|
||||||
ownerUri: ownerUri
|
ownerUri: ownerUri
|
||||||
@@ -1360,7 +1346,6 @@ export class ServerContextualizationServiceFeature extends SqlOpsFeature<undefin
|
|||||||
|
|
||||||
return azdata.dataprotocol.registerServerContextualizationProvider({
|
return azdata.dataprotocol.registerServerContextualizationProvider({
|
||||||
providerId: client.providerId,
|
providerId: client.providerId,
|
||||||
generateServerContextualization: generateServerContextualization,
|
|
||||||
getServerContextualization: getServerContextualization
|
getServerContextualization: getServerContextualization
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
13
src/sql/azdata.proposed.d.ts
vendored
13
src/sql/azdata.proposed.d.ts
vendored
@@ -1783,13 +1783,6 @@ declare module 'azdata' {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export namespace contextualization {
|
export namespace contextualization {
|
||||||
export interface GenerateServerContextualizationResult {
|
|
||||||
/**
|
|
||||||
* The generated server context.
|
|
||||||
*/
|
|
||||||
context: string | undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface GetServerContextualizationResult {
|
export interface GetServerContextualizationResult {
|
||||||
/**
|
/**
|
||||||
* The retrieved server context.
|
* The retrieved server context.
|
||||||
@@ -1798,12 +1791,6 @@ declare module 'azdata' {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface ServerContextualizationProvider extends DataProvider {
|
export interface ServerContextualizationProvider extends DataProvider {
|
||||||
/**
|
|
||||||
* Generates server context.
|
|
||||||
* @param ownerUri The URI of the connection to generate context for.
|
|
||||||
*/
|
|
||||||
generateServerContextualization(ownerUri: string): Thenable<GenerateServerContextualizationResult>;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets server context, which can be in the form of create scripts but is left up each provider.
|
* Gets server context, which can be in the form of create scripts but is left up each provider.
|
||||||
* @param ownerUri The URI of the connection to get context for.
|
* @param ownerUri The URI of the connection to get context for.
|
||||||
|
|||||||
@@ -573,10 +573,9 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Database server contextualization handler
|
// Server contextualization handler
|
||||||
public $registerServerContextualizationProvider(providerId: string, handle: number): void {
|
public $registerServerContextualizationProvider(providerId: string, handle: number): void {
|
||||||
this._serverContextualizationService.registerProvider(providerId, <azdata.contextualization.ServerContextualizationProvider>{
|
this._serverContextualizationService.registerProvider(providerId, <azdata.contextualization.ServerContextualizationProvider>{
|
||||||
generateServerContextualization: (ownerUri: string) => this._proxy.$generateServerContextualization(handle, ownerUri),
|
|
||||||
getServerContextualization: (ownerUri: string) => this._proxy.$getServerContextualization(handle, ownerUri)
|
getServerContextualization: (ownerUri: string) => this._proxy.$getServerContextualization(handle, ownerUri)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -970,11 +970,7 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
|
|||||||
return this._resolveProvider<azdata.executionPlan.ExecutionPlanProvider>(handle).isExecutionPlan(value);
|
return this._resolveProvider<azdata.executionPlan.ExecutionPlanProvider>(handle).isExecutionPlan(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Database Server Contextualization API
|
// Server Contextualization API
|
||||||
|
|
||||||
public override $generateServerContextualization(handle: number, ownerUri: string): Thenable<azdata.contextualization.GenerateServerContextualizationResult> {
|
|
||||||
return this._resolveProvider<azdata.contextualization.ServerContextualizationProvider>(handle).generateServerContextualization(ownerUri);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override $getServerContextualization(handle: number, ownerUri: string): Thenable<azdata.contextualization.GetServerContextualizationResult> {
|
public override $getServerContextualization(handle: number, ownerUri: string): Thenable<azdata.contextualization.GetServerContextualizationResult> {
|
||||||
return this._resolveProvider<azdata.contextualization.ServerContextualizationProvider>(handle).getServerContextualization(ownerUri);
|
return this._resolveProvider<azdata.contextualization.ServerContextualizationProvider>(handle).getServerContextualization(ownerUri);
|
||||||
|
|||||||
@@ -595,10 +595,6 @@ export abstract class ExtHostDataProtocolShape {
|
|||||||
* Determines if the provided value is an execution plan and returns the appropriate file extension.
|
* Determines if the provided value is an execution plan and returns the appropriate file extension.
|
||||||
*/
|
*/
|
||||||
$isExecutionPlan(handle: number, value: string): Thenable<azdata.executionPlan.IsExecutionPlanResult> { throw ni(); }
|
$isExecutionPlan(handle: number, value: string): Thenable<azdata.executionPlan.IsExecutionPlanResult> { throw ni(); }
|
||||||
/**
|
|
||||||
* Generates server context.
|
|
||||||
*/
|
|
||||||
$generateServerContextualization(handle: number, ownerUri: string): Thenable<azdata.contextualization.GenerateServerContextualizationResult> { throw ni(); }
|
|
||||||
/**
|
/**
|
||||||
* Gets server context.
|
* Gets server context.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -75,45 +75,14 @@ export class ServerContextualizationService extends Disposable implements IServe
|
|||||||
|
|
||||||
const getServerContextualizationResult = await this.getServerContextualization(uri);
|
const getServerContextualizationResult = await this.getServerContextualization(uri);
|
||||||
if (getServerContextualizationResult.context) {
|
if (getServerContextualizationResult.context) {
|
||||||
this._logService.info(`Server contextualization was previously generated for the URI (${uri}) connection, so sending that to Copilot for context.`);
|
this._logService.info(`Server contextualization was retrieved for the URI (${uri}) connection, so sending that to Copilot for context.`);
|
||||||
|
|
||||||
await this.sendServerContextualizationToCopilot(getServerContextualizationResult.context);
|
await this.sendServerContextualizationToCopilot(getServerContextualizationResult.context);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
this._logService.info(`Server contextualization was not previously generated for the URI (${uri}) connection. Generating now...`);
|
|
||||||
|
|
||||||
const generateServerContextualizationResult = await this.generateServerContextualization(uri);
|
|
||||||
if (generateServerContextualizationResult.context) {
|
|
||||||
this._logService.info(`Server contextualization was generated for the URI (${uri}) connection, so sending that to Copilot.`);
|
|
||||||
|
|
||||||
await this.sendServerContextualizationToCopilot(generateServerContextualizationResult.context);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
this._logService.warn(`Server contextualization was not generated for the URI (${uri}) connection, so no context will be sent to Copilot.`);
|
this._logService.warn(`Server contextualization was not generated for the URI (${uri}) connection, so no context will be sent to Copilot.`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates server context
|
|
||||||
* @param ownerUri The URI of the connection to generate context for.
|
|
||||||
*/
|
|
||||||
private async generateServerContextualization(ownerUri: string): Promise<azdata.contextualization.GenerateServerContextualizationResult> {
|
|
||||||
const providerName = this._connectionManagementService.getProviderIdFromUri(ownerUri);
|
|
||||||
const handler = this.getProvider(providerName);
|
|
||||||
if (handler) {
|
|
||||||
this._logService.info(`Generating server contextualization for ${ownerUri}`);
|
|
||||||
|
|
||||||
return await handler.generateServerContextualization(ownerUri);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this._logService.info(`No server contextualization provider found for ${ownerUri}`);
|
|
||||||
|
|
||||||
return Promise.resolve({
|
|
||||||
context: undefined
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets all database context.
|
* Gets all database context.
|
||||||
|
|||||||
Reference in New Issue
Block a user