Rework how we handle custom editors (#5696)

* update how we handle editors

* small edit

* handle changing languages

* implement generic language association

* implement notebook serializers

* fix tests

* formatting

* update how we handle editors

* small edit

* handle changing languages

* implement generic language association

* implement notebook serializers

* fix tests

* formatting

* fix broken

* fix compile

* fix tests

* add back in removed note book contributions

* fix layering

* fix compile errors

* fix workbench

* fix hanging promises

* idk why these changed

* fix change

* add comments to language change code

* fix a few bugs

* add query plan association
This commit is contained in:
Anthony Dresser
2019-11-24 19:22:11 -08:00
committed by GitHub
parent f3a6fc6f88
commit 43387f0d0b
50 changed files with 988 additions and 873 deletions

View File

@@ -8,7 +8,6 @@ import * as LocalizedConstants from 'sql/workbench/contrib/query/common/localize
import QueryRunner from 'sql/platform/query/common/queryRunner';
import { DataService } from 'sql/workbench/contrib/grid/common/dataService';
import { IQueryModelService, IQueryEvent } from 'sql/platform/query/common/queryModel';
import { QueryInput } from 'sql/workbench/contrib/query/common/queryInput';
import * as azdata from 'azdata';
@@ -19,6 +18,7 @@ import * as strings from 'vs/base/common/strings';
import * as types from 'vs/base/common/types';
import { INotificationService } from 'vs/platform/notification/common/notification';
import Severity from 'vs/base/common/severity';
import { QueryEditorInput } from 'sql/workbench/contrib/query/common/queryEditorInput';
const selectionSnippetMaxLen = 100;
@@ -35,7 +35,7 @@ export class QueryInfo {
public dataService: DataService;
public queryEventQueue: QueryEvent[];
public selection: Array<azdata.ISelectionData>;
public queryInput: QueryInput;
public queryInput: QueryEditorInput;
public selectionSnippet?: string;
// Notes if the angular components have obtained the DataService. If not, all messages sent
@@ -158,19 +158,6 @@ export class QueryModelService implements IQueryModelService {
}
}
public setEditorSelection(uri: string, index: number): void {
let info = this._queryInfoMap.get(uri);
if (info && info.queryInput) {
info.queryInput.updateSelection(info.selection[index]);
}
}
public showWarning(uri: string, message: string): void {
}
public showError(uri: string, message: string): void {
}
public showCommitError(error: string): void {
this._notificationService.notify({
severity: Severity.Error,
@@ -187,28 +174,28 @@ export class QueryModelService implements IQueryModelService {
/**
* Run a query for the given URI with the given text selection
*/
public async runQuery(uri: string, selection: azdata.ISelectionData, queryInput: QueryInput, runOptions?: azdata.ExecutionPlanOptions): Promise<void> {
public async runQuery(uri: string, selection: azdata.ISelectionData, queryInput: QueryEditorInput, runOptions?: azdata.ExecutionPlanOptions): Promise<void> {
return this.doRunQuery(uri, selection, queryInput, false, runOptions);
}
/**
* Run the current SQL statement for the given URI
*/
public async runQueryStatement(uri: string, selection: azdata.ISelectionData, queryInput: QueryInput): Promise<void> {
public async runQueryStatement(uri: string, selection: azdata.ISelectionData, queryInput: QueryEditorInput): Promise<void> {
return this.doRunQuery(uri, selection, queryInput, true);
}
/**
* Run the current SQL statement for the given URI
*/
public async runQueryString(uri: string, selection: string, queryInput: QueryInput): Promise<void> {
public async runQueryString(uri: string, selection: string, queryInput: QueryEditorInput): Promise<void> {
return this.doRunQuery(uri, selection, queryInput, true);
}
/**
* Run Query implementation
*/
private async doRunQuery(uri: string, selection: azdata.ISelectionData | string, queryInput: QueryInput,
private async doRunQuery(uri: string, selection: azdata.ISelectionData | string, queryInput: QueryEditorInput,
runCurrentStatement: boolean, runOptions?: azdata.ExecutionPlanOptions): Promise<void> {
// Reuse existing query runner if it exists
let queryRunner: QueryRunner | undefined;