diff --git a/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts b/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts index 0d8ce3b776..9382dd4c6f 100644 --- a/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts +++ b/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts @@ -5,11 +5,12 @@ import { Action } from 'vs/base/common/actions'; import * as nls from 'vs/nls'; - import { RunQueryOnConnectionMode } from 'sql/platform/connection/common/connectionManagement'; import { InsightActionContext } from 'sql/workbench/browser/actions'; import { openNewQuery } from 'sql/workbench/contrib/query/browser/queryActions'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService'; +import { isString } from 'vs/base/common/types'; export class RunInsightQueryAction extends Action { public static ID = 'runQuery'; @@ -17,12 +18,25 @@ export class RunInsightQueryAction extends Action { constructor( id: string, label: string, - @IInstantiationService private readonly instantiationService: IInstantiationService + @IInstantiationService private readonly instantiationService: IInstantiationService, + @ITextResourcePropertiesService private _textResourcePropertiesService: ITextResourcePropertiesService ) { super(id, label); } public run(context: InsightActionContext): Promise { - return this.instantiationService.invokeFunction(openNewQuery, context.profile, undefined, RunQueryOnConnectionMode.executeQuery).then(() => true, () => false); + let queryString: string = undefined; + let eol: string = this._textResourcePropertiesService.getEOL(undefined); + if (context.insight && context.insight.query) { + if (isString(context.insight.query)) { + queryString = context.insight.query; + } else { + queryString = context.insight.query.join(eol); + } + } else { + return Promise.resolve(false); + } + return this.instantiationService.invokeFunction(openNewQuery, context.profile, queryString, + RunQueryOnConnectionMode.executeQuery).then(() => true, () => false); } }