Add option to sort DB panel by language (#2993)

This commit is contained in:
Shati Patel
2023-10-18 14:58:39 +01:00
committed by GitHub
parent 30b51d98c8
commit a2f85877a8
4 changed files with 31 additions and 1 deletions

View File

@@ -4,6 +4,7 @@
- Sorted result set filenames now include a hash of the result set name instead of the full name. [#2955](https://github.com/github/vscode-codeql/pull/2955)
- The "Install Pack Dependencies" will now only list CodeQL packs located in the workspace. [#2960](https://github.com/github/vscode-codeql/pull/2960)
- Add a command to sort items in the databases view by language. [#2993](https://github.com/github/vscode-codeql/pull/2993)
## 1.9.2 - 12 October 2023

View File

@@ -772,6 +772,10 @@
"command": "codeQLDatabases.sortByName",
"title": "Sort by Name"
},
{
"command": "codeQLDatabases.sortByLanguage",
"title": "Sort by Language"
},
{
"command": "codeQLDatabases.sortByDateAdded",
"title": "Sort by Date Added"
@@ -998,10 +1002,15 @@
"group": "1_databases@0"
},
{
"command": "codeQLDatabases.sortByDateAdded",
"command": "codeQLDatabases.sortByLanguage",
"when": "view == codeQLDatabases",
"group": "1_databases@1"
},
{
"command": "codeQLDatabases.sortByDateAdded",
"when": "view == codeQLDatabases",
"group": "1_databases@2"
},
{
"command": "codeQLQueries.createQuery",
"when": "view == codeQLQueries",
@@ -1499,6 +1508,10 @@
"command": "codeQLDatabases.sortByName",
"when": "false"
},
{
"command": "codeQLDatabases.sortByLanguage",
"when": "false"
},
{
"command": "codeQLDatabases.sortByDateAdded",
"when": "false"

View File

@@ -227,6 +227,7 @@ export type LocalDatabasesCommands = {
"codeQLDatabases.chooseDatabaseInternet": () => Promise<void>;
"codeQLDatabases.chooseDatabaseGithub": () => Promise<void>;
"codeQLDatabases.sortByName": () => Promise<void>;
"codeQLDatabases.sortByLanguage": () => Promise<void>;
"codeQLDatabases.sortByDateAdded": () => Promise<void>;
// Database panel context menu

View File

@@ -57,6 +57,8 @@ import { LanguageContextStore } from "../language-context-store";
enum SortOrder {
NameAsc = "NameAsc",
NameDesc = "NameDesc",
LanguageAsc = "LanguageAsc",
LanguageDesc = "LanguageDesc",
DateAddedAsc = "DateAddedAsc",
DateAddedDesc = "DateAddedDesc",
}
@@ -155,6 +157,10 @@ class DatabaseTreeDataProvider
return db1.name.localeCompare(db2.name, env.language);
case SortOrder.NameDesc:
return db2.name.localeCompare(db1.name, env.language);
case SortOrder.LanguageAsc:
return db1.language.localeCompare(db2.language, env.language);
case SortOrder.LanguageDesc:
return db2.language.localeCompare(db1.language, env.language);
case SortOrder.DateAddedAsc:
return (db1.dateAdded || 0) - (db2.dateAdded || 0);
case SortOrder.DateAddedDesc:
@@ -264,6 +270,7 @@ export class DatabaseUI extends DisposableObject {
"codeQLDatabases.setCurrentDatabase":
this.handleMakeCurrentDatabase.bind(this),
"codeQLDatabases.sortByName": this.handleSortByName.bind(this),
"codeQLDatabases.sortByLanguage": this.handleSortByLanguage.bind(this),
"codeQLDatabases.sortByDateAdded": this.handleSortByDateAdded.bind(this),
"codeQLDatabases.removeDatabase": createMultiSelectionCommand(
this.handleRemoveDatabase.bind(this),
@@ -547,6 +554,14 @@ export class DatabaseUI extends DisposableObject {
}
}
private async handleSortByLanguage() {
if (this.treeDataProvider.sortOrder === SortOrder.LanguageAsc) {
this.treeDataProvider.sortOrder = SortOrder.LanguageDesc;
} else {
this.treeDataProvider.sortOrder = SortOrder.LanguageAsc;
}
}
private async handleSortByDateAdded() {
if (this.treeDataProvider.sortOrder === SortOrder.DateAddedAsc) {
this.treeDataProvider.sortOrder = SortOrder.DateAddedDesc;