diff --git a/extensions/ql-vscode/CHANGELOG.md b/extensions/ql-vscode/CHANGELOG.md index eb97ac2a2..932c04fd2 100644 --- a/extensions/ql-vscode/CHANGELOG.md +++ b/extensions/ql-vscode/CHANGELOG.md @@ -2,6 +2,8 @@ ## [UNRELEASED] +- The "Sort by Language" action in the databases view now sorts by name within each language. [#3055](https://github.com/github/vscode-codeql/pull/3055) + ## 1.9.4 - 6 November 2023 No user facing changes. diff --git a/extensions/ql-vscode/src/databases/local-databases-ui.ts b/extensions/ql-vscode/src/databases/local-databases-ui.ts index 655bc01e6..bf6b7d59f 100644 --- a/extensions/ql-vscode/src/databases/local-databases-ui.ts +++ b/extensions/ql-vscode/src/databases/local-databases-ui.ts @@ -158,9 +158,17 @@ class DatabaseTreeDataProvider case SortOrder.NameDesc: return db2.name.localeCompare(db1.name, env.language); case SortOrder.LanguageAsc: - return db1.language.localeCompare(db2.language, env.language); + return ( + db1.language.localeCompare(db2.language, env.language) || + // If the languages are the same, sort by name + db1.name.localeCompare(db2.name, env.language) + ); case SortOrder.LanguageDesc: - return db2.language.localeCompare(db1.language, env.language); + return ( + db2.language.localeCompare(db1.language, env.language) || + // If the languages are the same, sort by name + db2.name.localeCompare(db1.name, env.language) + ); case SortOrder.DateAddedAsc: return (db1.dateAdded || 0) - (db2.dateAdded || 0); case SortOrder.DateAddedDesc: