diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index e16d4694eb9..8c00d418ba3 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -604,7 +604,7 @@ { "command": "codeQLDatabases.setCurrentDatabase", "group": "inline", - "when": "view == codeQLDatabases" + "when": "view == codeQLDatabases && viewItem != currentDatabase" }, { "command": "codeQLDatabases.removeDatabase", diff --git a/extensions/ql-vscode/src/databases-ui.ts b/extensions/ql-vscode/src/databases-ui.ts index 96a79a6b12b..7c4aeecd020 100644 --- a/extensions/ql-vscode/src/databases-ui.ts +++ b/extensions/ql-vscode/src/databases-ui.ts @@ -135,6 +135,7 @@ class DatabaseTreeDataProvider extends DisposableObject this.extensionPath, SELECTED_DATABASE_ICON ); + item.contextValue = 'currentDatabase'; } else if (element.error !== undefined) { item.iconPath = joinThemableIconPath( this.extensionPath, diff --git a/extensions/ql-vscode/src/databases.ts b/extensions/ql-vscode/src/databases.ts index bd722fdfaad..15a90d99c38 100644 --- a/extensions/ql-vscode/src/databases.ts +++ b/extensions/ql-vscode/src/databases.ts @@ -731,6 +731,8 @@ export class DatabaseManager extends DisposableObject { this._currentDatabaseItem = item; this.updatePersistedCurrentDatabaseItem(); + await vscode.commands.executeCommand('setContext', 'codeQL.currentDatabaseItem', item?.name); + this._onDidChangeCurrentDatabaseItem.fire({ item, kind: DatabaseEventKind.Change