Skip to content

Commit 5bfaddc

Browse files
Fix copying messages from log to clipboard (#1445)
1 parent f6252a0 commit 5bfaddc

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

packages/extension/package.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,10 @@
290290
"command": "sqltools.copyTextFromTreeItem",
291291
"category": "SQLTools Sidebar"
292292
},
293+
{
294+
"title": "Copy Selected Message(s)",
295+
"command": "sqltools.copyTextFromConsoleMessages"
296+
},
293297
{
294298
"title": "Generate Insert Query",
295299
"command": "sqltools.generateInsertQuery",
@@ -1034,6 +1038,10 @@
10341038
"command": "sqltools.copyTextFromTreeItem",
10351039
"when": "false"
10361040
},
1041+
{
1042+
"command": "sqltools.copyTextFromConsoleMessages",
1043+
"when": "false"
1044+
},
10371045
{
10381046
"command": "sqltools.refreshTree",
10391047
"when": "false"
@@ -1160,9 +1168,9 @@
11601168
"group": "sqltools.connectionExplorer.edit@1"
11611169
},
11621170
{
1163-
"command": "sqltools.copyTextFromTreeItem",
1171+
"command": "sqltools.copyTextFromConsoleMessages",
11641172
"when": "view == sqltoolsViewConsoleMessages",
1165-
"group": "sqltools.connectionExplorer.edit@1"
1173+
"group": "sqltools.consoleMessages.edit@1"
11661174
},
11671175
{
11681176
"command": "sqltools.selectConnection",

packages/plugins/connection-manager/explorer/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export class ConnectionExplorer implements TreeDataProvider<SidebarTreeItem>, Tr
105105
}
106106
});
107107
this.messagesTreeViewProvider = new MessagesProvider();
108-
this.messagesTreeView = window.createTreeView(`${EXT_NAMESPACE}ViewConsoleMessages`, { treeDataProvider: this.messagesTreeViewProvider, canSelectMany: false, showCollapseAll: true });
108+
this.messagesTreeView = window.createTreeView(`${EXT_NAMESPACE}ViewConsoleMessages`, { treeDataProvider: this.messagesTreeViewProvider, canSelectMany: true, showCollapseAll: true });
109109
Context.subscriptions.push(this.treeView, this.messagesTreeView);
110110
}
111111

packages/plugins/connection-manager/extension.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,10 @@ export class ConnectionManagerPlugin implements IExtensionPlugin {
654654
this.updateAttachedConnectionsMap(fileUri);
655655
}
656656

657+
private ext_copyTextFromConsoleMessages = async (item, selectedNodes) => {
658+
return commands.executeCommand(`${EXT_NAMESPACE}.copyMessages`, item, selectedNodes);
659+
}
660+
657661
private ext_copyTextFromTreeItem = async () => {
658662
const nodes = this.explorer.getSelection();
659663
if (!nodes || nodes.length === 0) return;
@@ -793,6 +797,7 @@ export class ConnectionManagerPlugin implements IExtensionPlugin {
793797
.registerCommand(`testConnection`, this.ext_testConnection)
794798
.registerCommand(`getConnections`, this.ext_getConnections)
795799
.registerCommand(`detachConnectionFromFile`, this.ext_detachConnectionFromFile)
800+
.registerCommand(`copyTextFromConsoleMessages`, this.ext_copyTextFromConsoleMessages)
796801
.registerCommand(`copyTextFromTreeItem`, this.ext_copyTextFromTreeItem)
797802
.registerCommand(`getChildrenForTreeItem`, this.ext_getChildrenForTreeItem)
798803
.registerCommand(`getInsertQuery`, this.ext_getInsertQuery);

packages/plugins/formatter/extension.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ function copyTextHandler(item: { value: string } | string, items?: ({ value: str
5555
return env.clipboard.writeText(copyText);
5656
}
5757

58+
function copyMessagesHandler(item: { value: string } | string, items?: ({ value: string } | string)[]) {
59+
items = items ? items : [item];
60+
const copyText = items.filter(n => n !== null && typeof n !== 'undefined').map(item => `${(<any>item).label || item} [${(<any>item).description}]`).join('\n');
61+
if (!copyText) return;
62+
return env.clipboard.writeText(copyText);
63+
}
64+
5865
async function generateInsertQueryHandler(item: SidebarItem) {
5966
const columns: NSDatabase.IColumn[] = await commands.executeCommand(`${EXT_NAMESPACE}.getChildrenForTreeItem`, {
6067
conn: item.conn,
@@ -76,6 +83,7 @@ const register = (extension: IExtension) => {
7683
extension.registerTextEditorCommand(`formatSql`, formatSqlHandler)
7784
.registerCommand(`insertText`, insertTextHandler)
7885
.registerCommand(`copyText`, copyTextHandler)
86+
.registerCommand(`copyMessages`, copyMessagesHandler)
7987
.registerCommand(`generateInsertQuery`, generateInsertQueryHandler)
8088
.registerCommand(`newSqlFile`, newSqlFileHandler);
8189
}

0 commit comments

Comments
 (0)