Skip to content

Commit f3bc49e

Browse files
committed
Re-adds context keys for grouped views
Since VS Code fails to properly re-evaluate config keys
1 parent 1f4ff3d commit f3bc49e

File tree

3 files changed

+25
-33
lines changed

3 files changed

+25
-33
lines changed

package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19588,7 +19588,7 @@
1958819588
{
1958919589
"id": "gitlens.views.launchpad",
1959019590
"name": "Launchpad",
19591-
"when": "!config.gitlens.views.scm.grouped.views.launchpad && !gitlens:views:scm:grouped:refresh",
19591+
"when": "!(config.gitlens.views.scm.grouped.views.launchpad || gitlens:views:scm:grouped:views:launchpad)",
1959219592
"contextualTitle": "GitLens",
1959319593
"icon": "$(gitlens-launchpad-view)",
1959419594
"initialSize": 2,
@@ -19664,7 +19664,7 @@
1966419664
{
1966519665
"id": "gitlens.views.searchAndCompare",
1966619666
"name": "Search & Compare",
19667-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.searchAndCompare && !gitlens:views:scm:grouped:refresh",
19667+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.searchAndCompare || gitlens:views:scm:grouped:views:searchAndCompare)",
1966819668
"contextualTitle": "GitLens",
1966919669
"icon": "$(gitlens-search-view)",
1967019670
"initialSize": 2,
@@ -19708,71 +19708,71 @@
1970819708
{
1970919709
"id": "gitlens.views.repositories",
1971019710
"name": "Repositories",
19711-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.repositories && !gitlens:views:scm:grouped:refresh",
19711+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.repositories || gitlens:views:scm:grouped:views:repositories)",
1971219712
"contextualTitle": "GitLens",
1971319713
"icon": "$(gitlens-repositories-view)",
1971419714
"visibility": "hidden"
1971519715
},
1971619716
{
1971719717
"id": "gitlens.views.commits",
1971819718
"name": "Commits",
19719-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.commits && !gitlens:views:scm:grouped:refresh",
19719+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.commits || gitlens:views:scm:grouped:views:commits)",
1972019720
"contextualTitle": "GitLens",
1972119721
"icon": "$(gitlens-commits-view)",
1972219722
"visibility": "visible"
1972319723
},
1972419724
{
1972519725
"id": "gitlens.views.branches",
1972619726
"name": "Branches",
19727-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.branches && !gitlens:views:scm:grouped:refresh",
19727+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.branches || gitlens:views:scm:grouped:views:branches)",
1972819728
"contextualTitle": "GitLens",
1972919729
"icon": "$(gitlens-branches-view)",
1973019730
"visibility": "collapsed"
1973119731
},
1973219732
{
1973319733
"id": "gitlens.views.remotes",
1973419734
"name": "Remotes",
19735-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.remotes && !gitlens:views:scm:grouped:refresh",
19735+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.remotes || gitlens:views:scm:grouped:views:remotes)",
1973619736
"contextualTitle": "GitLens",
1973719737
"icon": "$(gitlens-remotes-view)",
1973819738
"visibility": "collapsed"
1973919739
},
1974019740
{
1974119741
"id": "gitlens.views.stashes",
1974219742
"name": "Stashes",
19743-
"when": "!gitlens:disabled && !gitlens:hasVirtualFolders && !config.gitlens.views.scm.grouped.views.stashes && !gitlens:views:scm:grouped:refresh",
19743+
"when": "!gitlens:disabled && !gitlens:hasVirtualFolders && !(config.gitlens.views.scm.grouped.views.stashes || gitlens:views:scm:grouped:views:stashes)",
1974419744
"contextualTitle": "GitLens",
1974519745
"icon": "$(gitlens-stashes-view)",
1974619746
"visibility": "collapsed"
1974719747
},
1974819748
{
1974919749
"id": "gitlens.views.tags",
1975019750
"name": "Tags",
19751-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.tags && !gitlens:views:scm:grouped:refresh",
19751+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.tags || gitlens:views:scm:grouped:views:tags)",
1975219752
"contextualTitle": "GitLens",
1975319753
"icon": "$(gitlens-tags-view)",
1975419754
"visibility": "collapsed"
1975519755
},
1975619756
{
1975719757
"id": "gitlens.views.worktrees",
1975819758
"name": "Worktrees",
19759-
"when": "!gitlens:disabled && !gitlens:hasVirtualFolders && gitlens:plus:enabled && !config.gitlens.views.scm.grouped.views.worktrees && !gitlens:views:scm:grouped:refresh",
19759+
"when": "!gitlens:disabled && !gitlens:hasVirtualFolders && gitlens:plus:enabled && !(config.gitlens.views.scm.grouped.views.worktrees || gitlens:views:scm:grouped:views:worktrees)",
1976019760
"contextualTitle": "GitLens",
1976119761
"icon": "$(gitlens-worktrees-view)",
1976219762
"visibility": "collapsed"
1976319763
},
1976419764
{
1976519765
"id": "gitlens.views.contributors",
1976619766
"name": "Contributors",
19767-
"when": "!gitlens:disabled && !config.gitlens.views.scm.grouped.views.contributors && !gitlens:views:scm:grouped:refresh",
19767+
"when": "!gitlens:disabled && !(config.gitlens.views.scm.grouped.views.contributors || gitlens:views:scm:grouped:views:contributors)",
1976819768
"contextualTitle": "GitLens",
1976919769
"icon": "$(gitlens-contributors-view)",
1977019770
"visibility": "collapsed"
1977119771
},
1977219772
{
1977319773
"id": "gitlens.views.scm.grouped",
1977419774
"name": "GitLens",
19775-
"when": "!gitlens:disabled && (config.gitlens.views.scm.grouped.views.branches || config.gitlens.views.scm.grouped.views.commits || config.gitlens.views.scm.grouped.views.contributors || config.gitlens.views.scm.grouped.views.launchpad || config.gitlens.views.scm.grouped.views.remotes || config.gitlens.views.scm.grouped.views.repositories || config.gitlens.views.scm.grouped.views.searchAndCompare || config.gitlens.views.scm.grouped.views.stashes || config.gitlens.views.scm.grouped.views.tags || config.gitlens.views.scm.grouped.views.worktrees) && !gitlens:views:scm:grouped:refresh",
19775+
"when": "!gitlens:disabled && ((config.gitlens.views.scm.grouped.views.branches || gitlens:views:scm:grouped:views:branches) || (config.gitlens.views.scm.grouped.views.commits || gitlens:views:scm:grouped:views:commits) || (config.gitlens.views.scm.grouped.views.contributors || gitlens:views:scm:grouped:views:contributors) || (config.gitlens.views.scm.grouped.views.launchpad || gitlens:views:scm:grouped:views:launchpad) || (config.gitlens.views.scm.grouped.views.remotes || gitlens:views:scm:grouped:views:remotes) || (config.gitlens.views.scm.grouped.views.repositories || gitlens:views:scm:grouped:views:repositories) || (config.gitlens.views.scm.grouped.views.searchAndCompare || gitlens:views:scm:grouped:views:searchAndCompare) || (config.gitlens.views.scm.grouped.views.stashes || gitlens:views:scm:grouped:views:stashes) || (config.gitlens.views.scm.grouped.views.tags || gitlens:views:scm:grouped:views:tags) || (config.gitlens.views.scm.grouped.views.worktrees || gitlens:views:scm:grouped:views:worktrees))",
1977619776
"contextualTitle": "GitLens",
1977719777
"icon": "$(gitlens-gitlens)",
1977819778
"visibility": "visible"

src/constants.context.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ export type ContextKeys = {
4545
'gitlens:views:patchDetails:mode': 'create' | 'view';
4646
'gitlens:views:pullRequest:visible': boolean;
4747
'gitlens:views:repositories:autoRefresh': boolean;
48-
'gitlens:views:scm:grouped:refresh': boolean;
4948
'gitlens:views:scm:grouped:view': GroupableTreeViewTypes;
5049
'gitlens:views:scm:grouped:welcome': boolean;
5150
'gitlens:vsls': boolean | 'host' | 'guest';
5251
'gitlens:window:annotated': AnnotationStatus;
5352
} & Record<`gitlens:action:${string}`, number> &
5453
Record<`gitlens:key:${Keys}`, boolean> &
54+
Record<`gitlens:views:scm:grouped:views:${GroupableTreeViewTypes}`, boolean> &
5555
Record<`gitlens:webview:${WebviewTypes | CustomEditorTypes}:visible`, boolean> &
5656
Record<`gitlens:webviewView:${WebviewViewTypes}:visible`, boolean> &
5757
Record<`gitlens:walkthroughState:${WalkthroughContextKeys}`, boolean>;

src/views/views.ts

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -431,21 +431,7 @@ export class Views implements Disposable {
431431
private updateScmGroupedViewsRegistration(bypassWelcomeView?: boolean) {
432432
void setContext('gitlens:views:scm:grouped:welcome', !this._welcomeDismissed);
433433

434-
const groupedViews = getScmGroupedViewsFromConfig();
435-
436-
// If we are going from 0 to > 0, we need to force the views to refresh (since there is some VS Code bug)
437-
const forceRefresh = this._scmGroupedViews?.size === 0 && groupedViews.size;
438-
439-
this._scmGroupedViews = groupedViews;
440-
441-
if (forceRefresh) {
442-
void setContext('gitlens:views:scm:grouped:refresh', true).then(() =>
443-
setContext('gitlens:views:scm:grouped:refresh', undefined).then(() =>
444-
this.updateScmGroupedViewsRegistration(),
445-
),
446-
);
447-
return;
448-
}
434+
this._scmGroupedViews = getScmGroupedViewsFromConfig();
449435

450436
this._scmGroupedView?.dispose();
451437
this._scmGroupedView = undefined;
@@ -830,15 +816,21 @@ const defaultScmGroupedViews: Record<GroupableTreeViewTypes, boolean> = Object.f
830816
});
831817

832818
function getScmGroupedViewsFromConfig() {
833-
const groupedViews = {
819+
const groupedViewsCfg = {
834820
...defaultScmGroupedViews,
835821
...configuration.get('views.scm.grouped.views', undefined, defaultScmGroupedViews),
836822
};
837-
return new Set<GroupableTreeViewTypes>(
838-
Object.keys(groupedViews).filter(
839-
key => groupedViews[key as GroupableTreeViewTypes],
840-
) as GroupableTreeViewTypes[],
841-
);
823+
824+
const groupedViews = new Set<GroupableTreeViewTypes>();
825+
826+
for (const [key, value] of Object.entries(groupedViewsCfg) as [GroupableTreeViewTypes, boolean][]) {
827+
if (value) {
828+
groupedViews.add(key);
829+
}
830+
void setContext(`gitlens:views:scm:grouped:views:${key}`, value);
831+
}
832+
833+
return groupedViews;
842834
}
843835

844836
async function updateScmGroupedViewsInConfig(groupedViews: Set<GroupableTreeViewTypes>) {

0 commit comments

Comments
 (0)