|
1 | 1 | import * as path from 'path';
|
2 | 2 | import { DisposableObject } from 'semmle-vscode-utils';
|
3 |
| -import { commands, Event, EventEmitter, ExtensionContext, ProviderResult, TreeDataProvider, TreeItem, Uri, window } from 'vscode'; |
| 3 | +import { commands, Event, EventEmitter, ExtensionContext, ProviderResult, TreeDataProvider, TreeItem, Uri, window, env } from 'vscode'; |
4 | 4 | import * as cli from './cli';
|
5 | 5 | import { DatabaseItem, DatabaseManager, getUpgradesDirectories } from './databases';
|
6 |
| -import { getOnDiskWorkspaceFolders } from './helpers'; |
| 6 | +import { getOnDiskWorkspaceFolders, showAndLogErrorMessage } from './helpers'; |
7 | 7 | import { logger } from './logging';
|
8 | 8 | import { clearCacheInDatabase, UserCancellationException } from './run-queries';
|
9 | 9 | import * as qsClient from './queryserver-client';
|
@@ -145,6 +145,7 @@ export class DatabaseUI extends DisposableObject {
|
145 | 145 | ctx.subscriptions.push(commands.registerCommand('codeQLDatabases.removeDatabase', this.handleRemoveDatabase));
|
146 | 146 | ctx.subscriptions.push(commands.registerCommand('codeQLDatabases.upgradeDatabase', this.handleUpgradeDatabase));
|
147 | 147 | ctx.subscriptions.push(commands.registerCommand('codeQLDatabases.renameDatabase', this.handleRenameDatabase));
|
| 148 | + ctx.subscriptions.push(commands.registerCommand('codeQLDatabases.openDatabaseFolder', this.handleOpenFolder)); |
148 | 149 | }
|
149 | 150 |
|
150 | 151 | private handleMakeCurrentDatabase = async (databaseItem: DatabaseItem): Promise<void> => {
|
@@ -222,13 +223,25 @@ export class DatabaseUI extends DisposableObject {
|
222 | 223 | }
|
223 | 224 |
|
224 | 225 | private handleRenameDatabase = async (databaseItem: DatabaseItem): Promise<void> => {
|
225 |
| - const newName = await window.showInputBox({ |
226 |
| - prompt: 'Choose new database name', |
227 |
| - value: databaseItem.name |
228 |
| - }); |
| 226 | + try { |
| 227 | + const newName = await window.showInputBox({ |
| 228 | + prompt: 'Choose new database name', |
| 229 | + value: databaseItem.name |
| 230 | + }); |
| 231 | + |
| 232 | + if (newName) { |
| 233 | + this.databaseManager.renameDatabaseItem(databaseItem, newName); |
| 234 | + } |
| 235 | + } catch (e) { |
| 236 | + showAndLogErrorMessage(e.message); |
| 237 | + } |
| 238 | + } |
229 | 239 |
|
230 |
| - if (newName) { |
231 |
| - this.databaseManager.renameDatabaseItem(databaseItem, newName); |
| 240 | + private handleOpenFolder = async (databaseItem: DatabaseItem): Promise<void> => { |
| 241 | + try { |
| 242 | + await env.openExternal(databaseItem.databaseUri); |
| 243 | + } catch (e) { |
| 244 | + showAndLogErrorMessage(e.message); |
232 | 245 | }
|
233 | 246 | }
|
234 | 247 |
|
|
0 commit comments