Skip to content

Commit d5c78fd

Browse files
authored
Indicate which language is selected in the databases view (#2871)
1 parent ecbc458 commit d5c78fd

File tree

3 files changed

+160
-9
lines changed

3 files changed

+160
-9
lines changed

extensions/ql-vscode/package.json

Lines changed: 126 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -757,38 +757,74 @@
757757
"command": "codeQLDatabases.displayAllLanguages",
758758
"title": "All languages"
759759
},
760+
{
761+
"command": "codeQLDatabases.displayAllLanguagesSelected",
762+
"title": "All languages (selected)"
763+
},
760764
{
761765
"command": "codeQLDatabases.displayCpp",
762766
"title": "C/C++"
763767
},
768+
{
769+
"command": "codeQLDatabases.displayCppSelected",
770+
"title": "C/C++ (selected)"
771+
},
764772
{
765773
"command": "codeQLDatabases.displayCsharp",
766774
"title": "C#"
767775
},
776+
{
777+
"command": "codeQLDatabases.displayCsharpSelected",
778+
"title": "C# (selected)"
779+
},
768780
{
769781
"command": "codeQLDatabases.displayGo",
770782
"title": "Go"
771783
},
784+
{
785+
"command": "codeQLDatabases.displayGoSelected",
786+
"title": "Go (selected)"
787+
},
772788
{
773789
"command": "codeQLDatabases.displayJava",
774790
"title": "Java/Kotlin"
775791
},
792+
{
793+
"command": "codeQLDatabases.displayJavaSelected",
794+
"title": "Java/Kotlin (selected)"
795+
},
776796
{
777797
"command": "codeQLDatabases.displayJavascript",
778798
"title": "JavaScript/TypeScript"
779799
},
800+
{
801+
"command": "codeQLDatabases.displayJavascriptSelected",
802+
"title": "JavaScript/TypeScript (selected)"
803+
},
780804
{
781805
"command": "codeQLDatabases.displayPython",
782806
"title": "Python"
783807
},
808+
{
809+
"command": "codeQLDatabases.displayPythonSelected",
810+
"title": "Python (selected)"
811+
},
784812
{
785813
"command": "codeQLDatabases.displayRuby",
786814
"title": "Ruby"
787815
},
816+
{
817+
"command": "codeQLDatabases.displayRubySelected",
818+
"title": "Ruby (selected)"
819+
},
788820
{
789821
"command": "codeQLDatabases.displaySwift",
790822
"title": "Swift"
791823
},
824+
{
825+
"command": "codeQLDatabases.displaySwiftSelected",
826+
"title": "Swift (selected)"
827+
},
792828
{
793829
"command": "codeQL.chooseDatabaseFolder",
794830
"title": "CodeQL: Choose Database from Folder"
@@ -1568,38 +1604,74 @@
15681604
"command": "codeQLDatabases.displayAllLanguages",
15691605
"when": "false"
15701606
},
1607+
{
1608+
"command": "codeQLDatabases.displayAllLanguagesSelected",
1609+
"when": "false"
1610+
},
15711611
{
15721612
"command": "codeQLDatabases.displayCpp",
15731613
"when": "false"
15741614
},
1615+
{
1616+
"command": "codeQLDatabases.displayCppSelected",
1617+
"when": "false"
1618+
},
15751619
{
15761620
"command": "codeQLDatabases.displayCsharp",
15771621
"when": "false"
15781622
},
1623+
{
1624+
"command": "codeQLDatabases.displayCsharpSelected",
1625+
"when": "false"
1626+
},
15791627
{
15801628
"command": "codeQLDatabases.displayGo",
15811629
"when": "false"
15821630
},
1631+
{
1632+
"command": "codeQLDatabases.displayGoSelected",
1633+
"when": "false"
1634+
},
15831635
{
15841636
"command": "codeQLDatabases.displayJava",
15851637
"when": "false"
15861638
},
1639+
{
1640+
"command": "codeQLDatabases.displayJavaSelected",
1641+
"when": "false"
1642+
},
15871643
{
15881644
"command": "codeQLDatabases.displayJavascript",
15891645
"when": "false"
15901646
},
1647+
{
1648+
"command": "codeQLDatabases.displayJavascriptSelected",
1649+
"when": "false"
1650+
},
15911651
{
15921652
"command": "codeQLDatabases.displayPython",
15931653
"when": "false"
15941654
},
1655+
{
1656+
"command": "codeQLDatabases.displayPythonSelected",
1657+
"when": "false"
1658+
},
15951659
{
15961660
"command": "codeQLDatabases.displayRuby",
15971661
"when": "false"
15981662
},
1663+
{
1664+
"command": "codeQLDatabases.displayRubySelected",
1665+
"when": "false"
1666+
},
15991667
{
16001668
"command": "codeQLDatabases.displaySwift",
16011669
"when": "false"
16021670
},
1671+
{
1672+
"command": "codeQLDatabases.displaySwiftSelected",
1673+
"when": "false"
1674+
},
16031675
{
16041676
"command": "codeQLQueryHistory.openQueryContextMenu",
16051677
"when": "false"
@@ -1797,31 +1869,76 @@
17971869
],
17981870
"codeQLDatabases.languages": [
17991871
{
1800-
"command": "codeQLDatabases.displayAllLanguages"
1872+
"command": "codeQLDatabases.displayAllLanguages",
1873+
"when": "codeQLDatabases.languageFilter != All"
1874+
},
1875+
{
1876+
"command": "codeQLDatabases.displayAllLanguagesSelected",
1877+
"when": "codeQLDatabases.languageFilter == All"
1878+
},
1879+
{
1880+
"command": "codeQLDatabases.displayCpp",
1881+
"when": "codeQLDatabases.languageFilter != cpp"
1882+
},
1883+
{
1884+
"command": "codeQLDatabases.displayCppSelected",
1885+
"when": "codeQLDatabases.languageFilter == cpp"
1886+
},
1887+
{
1888+
"command": "codeQLDatabases.displayCsharp",
1889+
"when": "codeQLDatabases.languageFilter != csharp"
1890+
},
1891+
{
1892+
"command": "codeQLDatabases.displayCsharpSelected",
1893+
"when": "codeQLDatabases.languageFilter == csharp"
1894+
},
1895+
{
1896+
"command": "codeQLDatabases.displayGo",
1897+
"when": "codeQLDatabases.languageFilter != go"
1898+
},
1899+
{
1900+
"command": "codeQLDatabases.displayGoSelected",
1901+
"when": "codeQLDatabases.languageFilter == go"
18011902
},
18021903
{
1803-
"command": "codeQLDatabases.displayCpp"
1904+
"command": "codeQLDatabases.displayJava",
1905+
"when": "codeQLDatabases.languageFilter != java"
18041906
},
18051907
{
1806-
"command": "codeQLDatabases.displayCsharp"
1908+
"command": "codeQLDatabases.displayJavaSelected",
1909+
"when": "codeQLDatabases.languageFilter == java"
18071910
},
18081911
{
1809-
"command": "codeQLDatabases.displayGo"
1912+
"command": "codeQLDatabases.displayJavascript",
1913+
"when": "codeQLDatabases.languageFilter != javascript"
18101914
},
18111915
{
1812-
"command": "codeQLDatabases.displayJava"
1916+
"command": "codeQLDatabases.displayJavascriptSelected",
1917+
"when": "codeQLDatabases.languageFilter == javascript"
18131918
},
18141919
{
1815-
"command": "codeQLDatabases.displayJavascript"
1920+
"command": "codeQLDatabases.displayPython",
1921+
"when": "codeQLDatabases.languageFilter != python"
18161922
},
18171923
{
1818-
"command": "codeQLDatabases.displayPython"
1924+
"command": "codeQLDatabases.displayPythonSelected",
1925+
"when": "codeQLDatabases.languageFilter == python"
18191926
},
18201927
{
1821-
"command": "codeQLDatabases.displayRuby"
1928+
"command": "codeQLDatabases.displayRuby",
1929+
"when": "codeQLDatabases.languageFilter != ruby"
1930+
},
1931+
{
1932+
"command": "codeQLDatabases.displayRubySelected",
1933+
"when": "codeQLDatabases.languageFilter == ruby"
1934+
},
1935+
{
1936+
"command": "codeQLDatabases.displaySwift",
1937+
"when": "codeQLDatabases.languageFilter != swift"
18221938
},
18231939
{
1824-
"command": "codeQLDatabases.displaySwift"
1940+
"command": "codeQLDatabases.displaySwiftSelected",
1941+
"when": "codeQLDatabases.languageFilter == swift"
18251942
}
18261943
]
18271944
},

extensions/ql-vscode/src/common/commands.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,15 @@ export type LocalDatabasesCommands = {
228228
"codeQLDatabases.displayPython": () => Promise<void>;
229229
"codeQLDatabases.displayRuby": () => Promise<void>;
230230
"codeQLDatabases.displaySwift": () => Promise<void>;
231+
"codeQLDatabases.displayAllLanguagesSelected": () => Promise<void>;
232+
"codeQLDatabases.displayCppSelected": () => Promise<void>;
233+
"codeQLDatabases.displayCsharpSelected": () => Promise<void>;
234+
"codeQLDatabases.displayGoSelected": () => Promise<void>;
235+
"codeQLDatabases.displayJavaSelected": () => Promise<void>;
236+
"codeQLDatabases.displayJavascriptSelected": () => Promise<void>;
237+
"codeQLDatabases.displayPythonSelected": () => Promise<void>;
238+
"codeQLDatabases.displayRubySelected": () => Promise<void>;
239+
"codeQLDatabases.displaySwiftSelected": () => Promise<void>;
231240

232241
// Database panel context menu
233242
"codeQLDatabases.setCurrentDatabase": (

extensions/ql-vscode/src/databases/local-databases-ui.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,26 @@ export class DatabaseUI extends DisposableObject {
302302
this,
303303
QueryLanguage.Swift,
304304
),
305+
"codeQLDatabases.displayAllLanguagesSelected":
306+
this.handleChangeLanguageFilter.bind(this, "All"),
307+
"codeQLDatabases.displayCppSelected":
308+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.Cpp),
309+
"codeQLDatabases.displayCsharpSelected":
310+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.CSharp),
311+
"codeQLDatabases.displayGoSelected": this.handleChangeLanguageFilter.bind(
312+
this,
313+
QueryLanguage.Go,
314+
),
315+
"codeQLDatabases.displayJavaSelected":
316+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.Java),
317+
"codeQLDatabases.displayJavascriptSelected":
318+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.Javascript),
319+
"codeQLDatabases.displayPythonSelected":
320+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.Python),
321+
"codeQLDatabases.displayRubySelected":
322+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.Ruby),
323+
"codeQLDatabases.displaySwiftSelected":
324+
this.handleChangeLanguageFilter.bind(this, QueryLanguage.Swift),
305325
"codeQLDatabases.removeDatabase": createMultiSelectionCommand(
306326
this.handleRemoveDatabase.bind(this),
307327
),
@@ -594,6 +614,11 @@ export class DatabaseUI extends DisposableObject {
594614

595615
private async handleChangeLanguageFilter(languageFilter: LanguageFilter) {
596616
this.treeDataProvider.languageFilter = languageFilter;
617+
await this.app.commands.execute(
618+
"setContext",
619+
"codeQLDatabases.languageFilter",
620+
languageFilter,
621+
);
597622
}
598623

599624
private async handleUpgradeCurrentDatabase(): Promise<void> {

0 commit comments

Comments
 (0)