From 002a93f996c5eea896f7ed0bbc773ca864a38234 Mon Sep 17 00:00:00 2001 From: shati-patel <42641846+shati-patel@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:16:18 +0200 Subject: [PATCH 1/3] Indicate which language is selected --- extensions/ql-vscode/package.json | 135 ++++++++++++++++-- extensions/ql-vscode/src/common/commands.ts | 9 ++ .../src/databases/local-databases-ui.ts | 25 ++++ 3 files changed, 160 insertions(+), 9 deletions(-) diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 8910d82a625..c0c31735783 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -757,38 +757,74 @@ "command": "codeQLDatabases.displayAllLanguages", "title": "All languages" }, + { + "command": "codeQLDatabases.displayAllLanguagesSelected", + "title": "All languages (selected)" + }, { "command": "codeQLDatabases.displayCpp", "title": "C/C++" }, + { + "command": "codeQLDatabases.displayCppSelected", + "title": "C/C++ (selected)" + }, { "command": "codeQLDatabases.displayCsharp", "title": "C#" }, + { + "command": "codeQLDatabases.displayCsharpSelected", + "title": "C# (selected)" + }, { "command": "codeQLDatabases.displayGo", "title": "Go" }, + { + "command": "codeQLDatabases.displayGoSelected", + "title": "Go (selected)" + }, { "command": "codeQLDatabases.displayJava", "title": "Java/Kotlin" }, + { + "command": "codeQLDatabases.displayJavaSelected", + "title": "Java/Kotlin (selected)" + }, { "command": "codeQLDatabases.displayJavascript", "title": "JavaScript/TypeScript" }, + { + "command": "codeQLDatabases.displayJavascriptSelected", + "title": "JavaScript/TypeScript (selected)" + }, { "command": "codeQLDatabases.displayPython", "title": "Python" }, + { + "command": "codeQLDatabases.displayPythonSelected", + "title": "Python (selected)" + }, { "command": "codeQLDatabases.displayRuby", "title": "Ruby" }, + { + "command": "codeQLDatabases.displayRubySelected", + "title": "Ruby (selected)" + }, { "command": "codeQLDatabases.displaySwift", "title": "Swift" }, + { + "command": "codeQLDatabases.displaySwiftSelected", + "title": "Swift (selected)" + }, { "command": "codeQL.chooseDatabaseFolder", "title": "CodeQL: Choose Database from Folder" @@ -1568,38 +1604,74 @@ "command": "codeQLDatabases.displayAllLanguages", "when": "false" }, + { + "command": "codeQLDatabases.displayAllLanguagesSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayCpp", "when": "false" }, + { + "command": "codeQLDatabases.displayCppSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayCsharp", "when": "false" }, + { + "command": "codeQLDatabases.displayCsharpSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayGo", "when": "false" }, + { + "command": "codeQLDatabases.displayGoSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayJava", "when": "false" }, + { + "command": "codeQLDatabases.displayJavaSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayJavascript", "when": "false" }, + { + "command": "codeQLDatabases.displayJavascriptSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayPython", "when": "false" }, + { + "command": "codeQLDatabases.displayPythonSelected", + "when": "false" + }, { "command": "codeQLDatabases.displayRuby", "when": "false" }, + { + "command": "codeQLDatabases.displayRubySelected", + "when": "false" + }, { "command": "codeQLDatabases.displaySwift", "when": "false" }, + { + "command": "codeQLDatabases.displaySwiftSelected", + "when": "false" + }, { "command": "codeQLQueryHistory.openQueryContextMenu", "when": "false" @@ -1797,31 +1869,76 @@ ], "codeQLDatabases.languages": [ { - "command": "codeQLDatabases.displayAllLanguages" + "command": "codeQLDatabases.displayAllLanguages", + "when": "codeQLDatabases.languageFilter != All" + }, + { + "command": "codeQLDatabases.displayAllLanguagesSelected", + "when": "codeQLDatabases.languageFilter == All" + }, + { + "command": "codeQLDatabases.displayCpp", + "when": "codeQLDatabases.languageFilter != cpp" + }, + { + "command": "codeQLDatabases.displayCppSelected", + "when": "codeQLDatabases.languageFilter == cpp" + }, + { + "command": "codeQLDatabases.displayCsharp", + "when": "codeQLDatabases.languageFilter != csharp" + }, + { + "command": "codeQLDatabases.displayCsharpSelected", + "when": "codeQLDatabases.languageFilter == csharp" + }, + { + "command": "codeQLDatabases.displayGo", + "when": "codeQLDatabases.languageFilter != go" + }, + { + "command": "codeQLDatabases.displayGoSelected", + "when": "codeQLDatabases.languageFilter == go" }, { - "command": "codeQLDatabases.displayCpp" + "command": "codeQLDatabases.displayJava", + "when": "codeQLDatabases.languageFilter != java" }, { - "command": "codeQLDatabases.displayCsharp" + "command": "codeQLDatabases.displayJavaSelected", + "when": "codeQLDatabases.languageFilter == java" }, { - "command": "codeQLDatabases.displayGo" + "command": "codeQLDatabases.displayJavascript", + "when": "codeQLDatabases.languageFilter != javascript" }, { - "command": "codeQLDatabases.displayJava" + "command": "codeQLDatabases.displayJavascriptSelected", + "when": "codeQLDatabases.languageFilter == javascript" }, { - "command": "codeQLDatabases.displayJavascript" + "command": "codeQLDatabases.displayPython", + "when": "codeQLDatabases.languageFilter != python" }, { - "command": "codeQLDatabases.displayPython" + "command": "codeQLDatabases.displayPythonSelected", + "when": "codeQLDatabases.languageFilter == python" }, { - "command": "codeQLDatabases.displayRuby" + "command": "codeQLDatabases.displayRuby", + "when": "codeQLDatabases.languageFilter != ruby" + }, + { + "command": "codeQLDatabases.displayRubySelected", + "when": "codeQLDatabases.languageFilter == ruby" + }, + { + "command": "codeQLDatabases.displaySwift", + "when": "codeQLDatabases.languageFilter != swift" }, { - "command": "codeQLDatabases.displaySwift" + "command": "codeQLDatabases.displaySwiftSelected", + "when": "codeQLDatabases.languageFilter == swift" } ] }, diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 0d330afa9bd..d5e9a6a3011 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -228,6 +228,15 @@ export type LocalDatabasesCommands = { "codeQLDatabases.displayPython": () => Promise; "codeQLDatabases.displayRuby": () => Promise; "codeQLDatabases.displaySwift": () => Promise; + "codeQLDatabases.displayAllLanguagesSelected": () => Promise; + "codeQLDatabases.displayCppSelected": () => Promise; + "codeQLDatabases.displayCsharpSelected": () => Promise; + "codeQLDatabases.displayGoSelected": () => Promise; + "codeQLDatabases.displayJavaSelected": () => Promise; + "codeQLDatabases.displayJavascriptSelected": () => Promise; + "codeQLDatabases.displayPythonSelected": () => Promise; + "codeQLDatabases.displayRubySelected": () => Promise; + "codeQLDatabases.displaySwiftSelected": () => Promise; // Database panel context menu "codeQLDatabases.setCurrentDatabase": ( diff --git a/extensions/ql-vscode/src/databases/local-databases-ui.ts b/extensions/ql-vscode/src/databases/local-databases-ui.ts index c0bf418840f..8c85e4788a1 100644 --- a/extensions/ql-vscode/src/databases/local-databases-ui.ts +++ b/extensions/ql-vscode/src/databases/local-databases-ui.ts @@ -302,6 +302,26 @@ export class DatabaseUI extends DisposableObject { this, QueryLanguage.Swift, ), + "codeQLDatabases.displayAllLanguagesSelected": + this.handleChangeLanguageFilter.bind(this, "All"), + "codeQLDatabases.displayCppSelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.Cpp), + "codeQLDatabases.displayCsharpSelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.CSharp), + "codeQLDatabases.displayGoSelected": this.handleChangeLanguageFilter.bind( + this, + QueryLanguage.Go, + ), + "codeQLDatabases.displayJavaSelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.Java), + "codeQLDatabases.displayJavascriptSelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.Javascript), + "codeQLDatabases.displayPythonSelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.Python), + "codeQLDatabases.displayRubySelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.Ruby), + "codeQLDatabases.displaySwiftSelected": + this.handleChangeLanguageFilter.bind(this, QueryLanguage.Swift), "codeQLDatabases.removeDatabase": createMultiSelectionCommand( this.handleRemoveDatabase.bind(this), ), @@ -594,6 +614,11 @@ export class DatabaseUI extends DisposableObject { private async handleChangeLanguageFilter(languageFilter: LanguageFilter) { this.treeDataProvider.languageFilter = languageFilter; + await this.app.commands.execute( + "setContext", + "codeQLDatabases.languageFilter", + languageFilter, + ); } private async handleUpgradeCurrentDatabase(): Promise { From 7f47b79f015df88c78eb8449db669b849a2ed572 Mon Sep 17 00:00:00 2001 From: shati-patel <42641846+shati-patel@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:17:50 +0200 Subject: [PATCH 2/3] Rename "All" -> "all" for consistency --- extensions/ql-vscode/package.json | 4 ++-- .../ql-vscode/src/databases/local-databases-ui.ts | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index c0c31735783..02f39d9d75a 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1870,11 +1870,11 @@ "codeQLDatabases.languages": [ { "command": "codeQLDatabases.displayAllLanguages", - "when": "codeQLDatabases.languageFilter != All" + "when": "codeQLDatabases.languageFilter != all" }, { "command": "codeQLDatabases.displayAllLanguagesSelected", - "when": "codeQLDatabases.languageFilter == All" + "when": "codeQLDatabases.languageFilter == all" }, { "command": "codeQLDatabases.displayCpp", diff --git a/extensions/ql-vscode/src/databases/local-databases-ui.ts b/extensions/ql-vscode/src/databases/local-databases-ui.ts index 8c85e4788a1..d4f9961e8ea 100644 --- a/extensions/ql-vscode/src/databases/local-databases-ui.ts +++ b/extensions/ql-vscode/src/databases/local-databases-ui.ts @@ -60,7 +60,7 @@ enum SortOrder { DateAddedDesc = "DateAddedDesc", } -type LanguageFilter = QueryLanguage | "All"; +type LanguageFilter = QueryLanguage | "all"; /** * Tree data provider for the databases view. @@ -70,7 +70,7 @@ class DatabaseTreeDataProvider implements TreeDataProvider { private _sortOrder = SortOrder.NameAsc; - private _languageFilter = "All" as LanguageFilter; + private _languageFilter = "all" as LanguageFilter; private readonly _onDidChangeTreeData = this.push( new EventEmitter(), @@ -137,7 +137,7 @@ class DatabaseTreeDataProvider if (element === undefined) { // Filter items by language const displayItems = this.databaseManager.databaseItems.filter((item) => { - if (this.languageFilter === "All") { + if (this.languageFilter === "all") { return true; } else { return item.language === this.languageFilter; @@ -269,7 +269,7 @@ export class DatabaseUI extends DisposableObject { "codeQLDatabases.sortByName": this.handleSortByName.bind(this), "codeQLDatabases.sortByDateAdded": this.handleSortByDateAdded.bind(this), "codeQLDatabases.displayAllLanguages": - this.handleChangeLanguageFilter.bind(this, "All"), + this.handleChangeLanguageFilter.bind(this, "all"), "codeQLDatabases.displayCpp": this.handleChangeLanguageFilter.bind( this, QueryLanguage.Cpp, @@ -303,7 +303,7 @@ export class DatabaseUI extends DisposableObject { QueryLanguage.Swift, ), "codeQLDatabases.displayAllLanguagesSelected": - this.handleChangeLanguageFilter.bind(this, "All"), + this.handleChangeLanguageFilter.bind(this, "all"), "codeQLDatabases.displayCppSelected": this.handleChangeLanguageFilter.bind(this, QueryLanguage.Cpp), "codeQLDatabases.displayCsharpSelected": From 4eb828f4fc103d91ac2974294f6110b4933062f9 Mon Sep 17 00:00:00 2001 From: shati-patel <42641846+shati-patel@users.noreply.github.com> Date: Wed, 27 Sep 2023 14:11:32 +0200 Subject: [PATCH 3/3] Revert "Rename "All" -> "all" for consistency" This reverts commit 7f47b79f015df88c78eb8449db669b849a2ed572. --- extensions/ql-vscode/package.json | 4 ++-- .../ql-vscode/src/databases/local-databases-ui.ts | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 02f39d9d75a..c0c31735783 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1870,11 +1870,11 @@ "codeQLDatabases.languages": [ { "command": "codeQLDatabases.displayAllLanguages", - "when": "codeQLDatabases.languageFilter != all" + "when": "codeQLDatabases.languageFilter != All" }, { "command": "codeQLDatabases.displayAllLanguagesSelected", - "when": "codeQLDatabases.languageFilter == all" + "when": "codeQLDatabases.languageFilter == All" }, { "command": "codeQLDatabases.displayCpp", diff --git a/extensions/ql-vscode/src/databases/local-databases-ui.ts b/extensions/ql-vscode/src/databases/local-databases-ui.ts index d4f9961e8ea..8c85e4788a1 100644 --- a/extensions/ql-vscode/src/databases/local-databases-ui.ts +++ b/extensions/ql-vscode/src/databases/local-databases-ui.ts @@ -60,7 +60,7 @@ enum SortOrder { DateAddedDesc = "DateAddedDesc", } -type LanguageFilter = QueryLanguage | "all"; +type LanguageFilter = QueryLanguage | "All"; /** * Tree data provider for the databases view. @@ -70,7 +70,7 @@ class DatabaseTreeDataProvider implements TreeDataProvider { private _sortOrder = SortOrder.NameAsc; - private _languageFilter = "all" as LanguageFilter; + private _languageFilter = "All" as LanguageFilter; private readonly _onDidChangeTreeData = this.push( new EventEmitter(), @@ -137,7 +137,7 @@ class DatabaseTreeDataProvider if (element === undefined) { // Filter items by language const displayItems = this.databaseManager.databaseItems.filter((item) => { - if (this.languageFilter === "all") { + if (this.languageFilter === "All") { return true; } else { return item.language === this.languageFilter; @@ -269,7 +269,7 @@ export class DatabaseUI extends DisposableObject { "codeQLDatabases.sortByName": this.handleSortByName.bind(this), "codeQLDatabases.sortByDateAdded": this.handleSortByDateAdded.bind(this), "codeQLDatabases.displayAllLanguages": - this.handleChangeLanguageFilter.bind(this, "all"), + this.handleChangeLanguageFilter.bind(this, "All"), "codeQLDatabases.displayCpp": this.handleChangeLanguageFilter.bind( this, QueryLanguage.Cpp, @@ -303,7 +303,7 @@ export class DatabaseUI extends DisposableObject { QueryLanguage.Swift, ), "codeQLDatabases.displayAllLanguagesSelected": - this.handleChangeLanguageFilter.bind(this, "all"), + this.handleChangeLanguageFilter.bind(this, "All"), "codeQLDatabases.displayCppSelected": this.handleChangeLanguageFilter.bind(this, QueryLanguage.Cpp), "codeQLDatabases.displayCsharpSelected":