From 00d2fadb7d297a4afe8d5796e688cf97ab3506c2 Mon Sep 17 00:00:00 2001 From: Enrique Mejia Date: Wed, 31 Mar 2021 10:53:52 -0500 Subject: [PATCH] Use {arg} to reference selected text in query shortcuts (#14894) * Add selection parameter to query shortcuts * Add description for selected text as parameter * Modify feature description since it supports proceedures and queries * Replace every {arg} inside query shortcut --- .../contrib/query/browser/keyboardQueryActions.ts | 7 ++++++- .../workbench/contrib/query/browser/query.contribution.ts | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sql/workbench/contrib/query/browser/keyboardQueryActions.ts b/src/sql/workbench/contrib/query/browser/keyboardQueryActions.ts index 3310099657..301d9d56c5 100644 --- a/src/sql/workbench/contrib/query/browser/keyboardQueryActions.ts +++ b/src/sql/workbench/contrib/query/browser/keyboardQueryActions.ts @@ -380,7 +380,12 @@ export class RunQueryShortcutAction extends Action { // otherwise, either run the statement or the script depending on parameter let parameterText: string = editor.getSelectionText(); return this.escapeStringParamIfNeeded(editor, shortcutText, parameterText).then((escapedParam) => { - let queryString = `${shortcutText} ${escapedParam}`; + let queryString = ''; + if (shortcutText.includes('{arg}')) { + queryString = shortcutText.replace(/{arg}/g, escapedParam); + } else { + queryString = `${shortcutText} ${escapedParam}`; + } editor.input.runQueryString(queryString); }).then(success => null, err => { // swallow errors for now diff --git a/src/sql/workbench/contrib/query/browser/query.contribution.ts b/src/sql/workbench/contrib/query/browser/query.contribution.ts index 72cb4f42f3..df0f95f2b4 100644 --- a/src/sql/workbench/contrib/query/browser/query.contribution.ts +++ b/src/sql/workbench/contrib/query/browser/query.contribution.ts @@ -468,7 +468,7 @@ for (let i = 0; i < 9; i++) { 'type': 'string', 'default': defaultVal, 'description': localize('queryShortcutDescription', - "Set keybinding workbench.action.query.shortcut{0} to run the shortcut text as a procedure call. Any selected text in the query editor will be passed as a parameter", + "Set keybinding workbench.action.query.shortcut{0} to run the shortcut text as a procedure call or query execution. Any selected text in the query editor will be passed as a parameter at the end of your query, or you can reference it with {arg}", queryIndex) }; }