From 64b49b9988efaa579fe9ff3eab22cc0aa1c08f94 Mon Sep 17 00:00:00 2001 From: Daisuke Mino Date: Mon, 11 Mar 2024 01:26:23 +0900 Subject: [PATCH 1/3] Add copy table ID to context in tree --- README.md | 8 ++++++++ package.json | 9 +++++++++ packages/extension/src/index.ts | 3 +++ packages/extension/src/tree.ts | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/README.md b/README.md index fed2e41..eb6c057 100644 --- a/README.md +++ b/README.md @@ -236,6 +236,14 @@ Run the query in BigQuery and save the results to a file in plain text Refresh the BigQuery Runner's Resources +### BigQuery Runner: Copy Table ID + +|ID| +|---| +|bigqueryRunner.copyTableId| + +Copy the selected table ID to the clipboard + ### BigQuery Runner: Preview Table in VS Code |ID| diff --git a/package.json b/package.json index a98cf64..fb59201 100644 --- a/package.json +++ b/package.json @@ -145,6 +145,11 @@ "icon": "$(refresh)", "description": "Refresh the BigQuery Runner's Resources" }, + { + "command": "bigqueryRunner.copyTableId", + "title": "BigQuery Runner: Copy Table ID", + "description": "Copy the selected table ID to the clipboard" + }, { "command": "bigqueryRunner.previewTableInVSCode", "title": "BigQuery Runner: Preview Table in VS Code", @@ -200,6 +205,10 @@ } ], "view/item/context": [ + { + "command": "bigqueryRunner.copyTableId", + "when": "view == bigqueryRunner.resources && viewItem == table" + }, { "command": "bigqueryRunner.previewTableInVSCode", "when": "view == bigqueryRunner.resources && viewItem == table" diff --git a/packages/extension/src/index.ts b/packages/extension/src/index.ts index 27d0076..e8d5733 100644 --- a/packages/extension/src/index.ts +++ b/packages/extension/src/index.ts @@ -187,6 +187,9 @@ export async function activate(ctx: ExtensionContext) { [`${section}.deleteSelectedResources`]: async () => { await tree.deleteSelectedResources(); }, + [`${section}.copyTableId`]: async (element: TableElement) => { + await tree.copyTableId(element); + }, [`${section}.previewTableInVSCode`]: async (element: TableElement) => { await tree.previewTableInVSCode(element); }, diff --git a/packages/extension/src/tree.ts b/packages/extension/src/tree.ts index 1b03caf..a54e10d 100644 --- a/packages/extension/src/tree.ts +++ b/packages/extension/src/tree.ts @@ -9,6 +9,7 @@ import type { ProjectReference, TableReference, } from "shared"; +import { getTableName } from "shared"; import type { Disposable, TreeItem } from "vscode"; import { env, @@ -69,6 +70,7 @@ export const createTree = ({ }): Disposable & { refreshResources(): Promise; deleteSelectedResources(): Promise; + copyTableId(element: TableElement): Promise; previewTableInVSCode(element: TableElement): Promise; previewTableOnRemote(element: TableElement): Promise; } => { @@ -263,6 +265,10 @@ export const createTree = ({ await this.refreshResources(); }, + async copyTableId(element: TableElement) { + await env.clipboard.writeText(getTableName(element.ref)); + }, + async previewTableInVSCode(element: TableElement) { await previewer.preview(element.ref); }, From db2353934e8ba6708bff7f1f6981ebdf0cbb0bf0 Mon Sep 17 00:00:00 2001 From: Daisuke Mino Date: Mon, 11 Mar 2024 01:43:00 +0900 Subject: [PATCH 2/3] Add copy field name to context in tree --- README.md | 8 ++++++++ package.json | 9 +++++++++ packages/extension/src/index.ts | 5 ++++- packages/extension/src/tree.ts | 5 +++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eb6c057..75f515b 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,14 @@ Preview the selected table in VS Code Preview the selected table in Google Cloud Console +### BigQuery Runner: Copy Field Name + +|ID| +|---| +|bigqueryRunner.copyFieldName| + +Copy the selected field name to the clipboard + ### BigQuery Runner: Clear Parameters |ID| diff --git a/package.json b/package.json index fb59201..f1ccafc 100644 --- a/package.json +++ b/package.json @@ -160,6 +160,11 @@ "title": "BigQuery Runner: Preview Table on Remote", "description": "Preview the selected table in Google Cloud Console" }, + { + "command": "bigqueryRunner.copyFieldName", + "title": "BigQuery Runner: Copy Field Name", + "description": "Copy the selected field name to the clipboard" + }, { "command": "bigqueryRunner.clearParams", "title": "BigQuery Runner: Clear Parameters", @@ -216,6 +221,10 @@ { "command": "bigqueryRunner.previewTableOnRemote", "when": "view == bigqueryRunner.resources && viewItem == table" + }, + { + "command": "bigqueryRunner.copyFieldName", + "when": "view == bigqueryRunner.resources && viewItem == field" } ] }, diff --git a/packages/extension/src/index.ts b/packages/extension/src/index.ts index e8d5733..d10b4c5 100644 --- a/packages/extension/src/index.ts +++ b/packages/extension/src/index.ts @@ -31,7 +31,7 @@ import { createStatusBarItemCreator, createStatusManager, } from "./statusManager"; -import type { TableElement } from "./tree"; +import type { FieldElement, TableElement } from "./tree"; import { createTree } from "./tree"; import { showError, showInformation } from "./window"; @@ -196,6 +196,9 @@ export async function activate(ctx: ExtensionContext) { [`${section}.previewTableOnRemote`]: async (element: TableElement) => { await tree.previewTableOnRemote(element); }, + [`${section}.copyFieldName`]: async (element: FieldElement) => { + await tree.copyFieldName(element); + }, [`${section}.clearParams`]: async () => { if (!window.activeTextEditor) { throw new Error(`no active text editor`); diff --git a/packages/extension/src/tree.ts b/packages/extension/src/tree.ts index a54e10d..d765943 100644 --- a/packages/extension/src/tree.ts +++ b/packages/extension/src/tree.ts @@ -73,6 +73,7 @@ export const createTree = ({ copyTableId(element: TableElement): Promise; previewTableInVSCode(element: TableElement): Promise; previewTableOnRemote(element: TableElement): Promise; + copyFieldName(element: FieldElement): Promise; } => { const clients = new Map(); const emitter = new EventEmitter(); @@ -282,6 +283,10 @@ export const createTree = ({ ); }, + async copyFieldName(element: FieldElement) { + await env.clipboard.writeText(element.ref.fieldId); + }, + dispose() { clients.clear(); emitter.dispose(); From 3953bc74f8c4cecc24ea1ee677034998ed5e9e6e Mon Sep 17 00:00:00 2001 From: Daisuke Mino Date: Mon, 11 Mar 2024 01:46:13 +0900 Subject: [PATCH 3/3] Add changelog for v1.22.0 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ebe5d5..d786b5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to the "BigQuery Runner" extension will be documented in this file. +## v1.22.0 + +### Added + +- Add "Copy Table ID" and "Copy Field Name" to the context menu of the tree view. + - [#57](https://github.com/minodisk/bigquery-runner/issues/57) + ## v1.21.13 ### Changed