Copy Headers for Selected Columns (#21622)

* Adds copy header delimiter setting

* Copies all table headers or selected headers only

* Adds missing comments

* Update src/sql/workbench/contrib/query/browser/query.contribution.ts

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>

* Update src/sql/workbench/contrib/query/browser/query.contribution.ts

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>

* Creates sort map entries function

* Removes CSV formatting and setting.

* Add colons before error message

* Renames table column sorting method

* Removes extra unnecessary function call

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
This commit is contained in:
Lewis Sanchez
2023-01-18 13:20:27 -08:00
committed by GitHub
parent 395daddbcd
commit f74d6f6d9b
4 changed files with 69 additions and 19 deletions

View File

@@ -6,7 +6,7 @@
import { OnInit, Component, Input, Inject, ViewChild, ElementRef, ChangeDetectorRef, forwardRef } from '@angular/core';
import * as azdata from 'azdata';
import { IGridDataProvider, getResultsString } from 'sql/workbench/services/query/common/gridDataProvider';
import { IGridDataProvider, getResultsString, getTableHeaderString } from 'sql/workbench/services/query/common/gridDataProvider';
import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
@@ -410,7 +410,16 @@ export class DataResourceDataProvider implements IGridDataProvider {
let results = await getResultsString(this, selection, includeHeaders, tableView);
this._clipboardService.writeText(results);
} catch (error) {
this._notificationService.error(localize('copyFailed', "Copy failed with error {0}", getErrorMessage(error)));
this._notificationService.error(localize('copyFailed', "Copy failed with error: {0}", getErrorMessage(error)));
}
}
async copyHeaders(selection: Slick.Range[]): Promise<void> {
try {
const results = getTableHeaderString(this, selection);
await this._clipboardService.writeText(results);
} catch (error) {
this._notificationService.error(localize('copyFailed', "Copy failed with error: {0}", getErrorMessage(error)));
}
}