|
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