enable provider/extension side copy to clipboard support (#23363)

* improve copy data experience

* add copy result handler

* refactoring

* updates

* add thirdparty notice for TextCopy nuget package

* add await

* comments
This commit is contained in:
Alan Ren
2023-06-09 14:24:45 -07:00
committed by GitHub
parent 80b733ebe0
commit 58082402aa
24 changed files with 217 additions and 104 deletions

View File

@@ -55,6 +55,7 @@ export interface IQueryManagementService {
changeConnectionUri(newUri: string, oldUri: string): Promise<void>;
saveResults(requestParams: azdata.SaveResultsRequestParams): Promise<azdata.SaveResultRequestResult>;
setQueryExecutionOptions(uri: string, options: azdata.QueryExecutionOptions): Promise<void>;
copyResults(params: azdata.CopyResultsRequestParams): Promise<void>;
// Callbacks
onQueryComplete(result: azdata.QueryExecuteCompleteNotificationResult): void;
@@ -93,6 +94,7 @@ export interface IQueryRequestHandler {
disposeQuery(ownerUri: string): Promise<void>;
connectionUriChanged(newUri: string, oldUri: string): Promise<void>;
saveResults(requestParams: azdata.SaveResultsRequestParams): Promise<azdata.SaveResultRequestResult>;
copyResults(requestParams: azdata.CopyResultsRequestParams): Promise<void>;
setQueryExecutionOptions(ownerUri: string, options: azdata.QueryExecutionOptions): Promise<void>;
// Edit Data actions
@@ -311,6 +313,12 @@ export class QueryManagementService implements IQueryManagementService {
});
}
public copyResults(requestParams: azdata.CopyResultsRequestParams): Promise<void> {
return this._runAction(requestParams.ownerUri, (runner) => {
return runner.copyResults(requestParams);
});
}
public onQueryComplete(result: azdata.QueryExecuteCompleteNotificationResult): void {
this._notify(result.ownerUri, (runner: QueryRunner) => {
runner.handleQueryComplete(result.batchSummaries.map(s => ({ ...s, range: selectionDataToRange(s.selection) })));