Add option to sort DB panel by language (#2993)
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user