diff --git a/package.json b/package.json index d18fcbe..05f1d2c 100644 --- a/package.json +++ b/package.json @@ -1526,12 +1526,12 @@ "view/item/context": [ { "command": "gitlens.openBranchesInRemote", - "when": "gitlens:enabled && gitlens:hasRemotes && view == gitlens.gitExplorer && viewItem == gitlens:branches", + "when": "gitlens:enabled && gitlens:hasRemotes && view == gitlens.gitExplorer && viewItem == gitlens:branches:remote", "group": "1_gitlens@1" }, { "command": "gitlens.openBranchInRemote", - "when": "gitlens:enabled && gitlens:hasRemotes && view == gitlens.gitExplorer && viewItem == gitlens:branch-history", + "when": "gitlens:enabled && gitlens:hasRemotes && view == gitlens.gitExplorer && viewItem == gitlens:branch-history:remote", "group": "1_gitlens@1" }, { diff --git a/src/views/branchHistoryNode.ts b/src/views/branchHistoryNode.ts index 310e249..082ee29 100644 --- a/src/views/branchHistoryNode.ts +++ b/src/views/branchHistoryNode.ts @@ -27,7 +27,7 @@ export class BranchHistoryNode extends ExplorerNode { name += ` ${GlyphChars.Space}${GlyphChars.ArrowLeftRight}${GlyphChars.Space} ${this.branch.tracking}`; } const item = new TreeItem(`${this.branch!.current ? `${GlyphChars.Check} ${GlyphChars.Space}` : ''}${name}`, TreeItemCollapsibleState.Collapsed); - item.contextValue = this.resourceType; + item.contextValue = this.branch.tracking ? `${this.resourceType}:remote` : this.resourceType; item.iconPath = { dark: this.context.asAbsolutePath('images/dark/icon-branch.svg'), diff --git a/src/views/branchesNode.ts b/src/views/branchesNode.ts index a87e69a..991e527 100644 --- a/src/views/branchesNode.ts +++ b/src/views/branchesNode.ts @@ -21,9 +21,13 @@ export class BranchesNode extends ExplorerNode { return [...Iterables.filterMap(branches, b => b.remote ? undefined : new BranchHistoryNode(b, this.uri, this.git.config.gitExplorer.commitFormat, this.context, this.git))]; } - getTreeItem(): TreeItem { + async getTreeItem(): Promise { const item = new TreeItem(`Branches`, TreeItemCollapsibleState.Expanded); - item.contextValue = this.resourceType; + + const remotes = await this.git.getRemotes(this.uri.repoPath!); + item.contextValue = (remotes !== undefined && remotes.length > 0) + ? `${this.resourceType}:remote` + : this.resourceType; item.iconPath = { dark: this.context.asAbsolutePath('images/dark/icon-branch.svg'),