Skip to content

Commit b013b45

Browse files
committed
Adds view-specific commands for explain
1 parent 4a450d7 commit b013b45

File tree

8 files changed

+117
-48
lines changed

8 files changed

+117
-48
lines changed

contributions.json

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,11 @@
2525
},
2626
"gitlens.ai.explainBranch": {
2727
"label": "Explain Branch (Preview)...",
28-
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
29-
"menus": {
30-
"view/item/context": [
31-
{
32-
"when": "viewItem =~ /gitlens:branch\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
33-
"group": "3_gitlens_ai",
34-
"order": 1
35-
}
36-
]
37-
}
28+
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
3829
},
3930
"gitlens.ai.explainBranch:graph": {
4031
"label": "Explain Branch (Preview)",
32+
"icon": "$(sparkle)",
4133
"menus": {
4234
"webview/context": [
4335
{
@@ -48,21 +40,26 @@
4840
]
4941
}
5042
},
51-
"gitlens.ai.explainCommit": {
52-
"label": "Explain Commit...",
53-
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
43+
"gitlens.ai.explainBranch:views": {
44+
"label": "Explain Branch (Preview)",
45+
"icon": "$(sparkle)",
5446
"menus": {
5547
"view/item/context": [
5648
{
57-
"when": "viewItem =~ /gitlens:commit\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
49+
"when": "viewItem =~ /gitlens:branch\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
5850
"group": "3_gitlens_ai",
5951
"order": 1
6052
}
6153
]
6254
}
6355
},
56+
"gitlens.ai.explainCommit": {
57+
"label": "Explain Commit...",
58+
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled"
59+
},
6460
"gitlens.ai.explainCommit:graph": {
6561
"label": "Explain Commit",
62+
"icon": "$(sparkle)",
6663
"menus": {
6764
"webview/context": [
6865
{
@@ -73,21 +70,26 @@
7370
]
7471
}
7572
},
76-
"gitlens.ai.explainStash": {
77-
"label": "Explain Stash (Preview)...",
78-
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
73+
"gitlens.ai.explainCommit:views": {
74+
"label": "Explain Commit",
75+
"icon": "$(sparkle)",
7976
"menus": {
8077
"view/item/context": [
8178
{
82-
"when": "viewItem =~ /gitlens:stash\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
79+
"when": "viewItem =~ /gitlens:commit\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
8380
"group": "3_gitlens_ai",
8481
"order": 1
8582
}
8683
]
8784
}
8885
},
86+
"gitlens.ai.explainStash": {
87+
"label": "Explain Stash (Preview)...",
88+
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled"
89+
},
8990
"gitlens.ai.explainStash:graph": {
9091
"label": "Explain Stash (Preview)",
92+
"icon": "$(sparkle)",
9193
"menus": {
9294
"webview/context": [
9395
{
@@ -98,26 +100,44 @@
98100
]
99101
}
100102
},
103+
"gitlens.ai.explainStash:views": {
104+
"label": "Explain Stash (Preview)",
105+
"icon": "$(sparkle)",
106+
"menus": {
107+
"view/item/context": [
108+
{
109+
"when": "viewItem =~ /gitlens:stash\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
110+
"group": "3_gitlens_ai",
111+
"order": 1
112+
}
113+
]
114+
}
115+
},
101116
"gitlens.ai.explainWip": {
102117
"label": "Explain Working Changes (Preview)...",
103-
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
118+
"commandPalette": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
119+
},
120+
"gitlens.ai.explainWip:graph": {
121+
"label": "Explain Working Changes (Preview)",
122+
"icon": "$(sparkle)",
104123
"menus": {
105124
"view/item/context": [
106125
{
107-
"when": "viewItem =~ /gitlens:worktree\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
126+
"when": "viewItem =~ /gitlens:(worktree|uncommitted)\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
108127
"group": "3_gitlens_ai",
109128
"order": 1
110129
}
111130
]
112131
}
113132
},
114-
"gitlens.ai.explainWip:graph": {
133+
"gitlens.ai.explainWip:views": {
115134
"label": "Explain Working Changes (Preview)",
135+
"icon": "$(sparkle)",
116136
"menus": {
117-
"webview/context": [
137+
"view/item/context": [
118138
{
119-
"when": "webviewItem =~ /gitlens:wip\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
120-
"group": "1_gitlens_actions_3",
139+
"when": "viewItem =~ /gitlens:(worktree|uncommitted)\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
140+
"group": "3_gitlens_ai",
121141
"order": 1
122142
}
123143
]

package.json

Lines changed: 57 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6081,7 +6081,13 @@
60816081
},
60826082
{
60836083
"command": "gitlens.ai.explainBranch:graph",
6084-
"title": "Explain Branch (Preview)"
6084+
"title": "Explain Branch (Preview)",
6085+
"icon": "$(sparkle)"
6086+
},
6087+
{
6088+
"command": "gitlens.ai.explainBranch:views",
6089+
"title": "Explain Branch (Preview)",
6090+
"icon": "$(sparkle)"
60856091
},
60866092
{
60876093
"command": "gitlens.ai.explainCommit",
@@ -6090,7 +6096,13 @@
60906096
},
60916097
{
60926098
"command": "gitlens.ai.explainCommit:graph",
6093-
"title": "Explain Commit"
6099+
"title": "Explain Commit",
6100+
"icon": "$(sparkle)"
6101+
},
6102+
{
6103+
"command": "gitlens.ai.explainCommit:views",
6104+
"title": "Explain Commit",
6105+
"icon": "$(sparkle)"
60946106
},
60956107
{
60966108
"command": "gitlens.ai.explainStash",
@@ -6099,7 +6111,13 @@
60996111
},
61006112
{
61016113
"command": "gitlens.ai.explainStash:graph",
6102-
"title": "Explain Stash (Preview)"
6114+
"title": "Explain Stash (Preview)",
6115+
"icon": "$(sparkle)"
6116+
},
6117+
{
6118+
"command": "gitlens.ai.explainStash:views",
6119+
"title": "Explain Stash (Preview)",
6120+
"icon": "$(sparkle)"
61036121
},
61046122
{
61056123
"command": "gitlens.ai.explainWip",
@@ -6108,7 +6126,13 @@
61086126
},
61096127
{
61106128
"command": "gitlens.ai.explainWip:graph",
6111-
"title": "Explain Working Changes (Preview)"
6129+
"title": "Explain Working Changes (Preview)",
6130+
"icon": "$(sparkle)"
6131+
},
6132+
{
6133+
"command": "gitlens.ai.explainWip:views",
6134+
"title": "Explain Working Changes (Preview)",
6135+
"icon": "$(sparkle)"
61126136
},
61136137
{
61146138
"command": "gitlens.ai.generateChangelog",
@@ -10451,6 +10475,10 @@
1045110475
"command": "gitlens.ai.explainBranch:graph",
1045210476
"when": "false"
1045310477
},
10478+
{
10479+
"command": "gitlens.ai.explainBranch:views",
10480+
"when": "false"
10481+
},
1045410482
{
1045510483
"command": "gitlens.ai.explainCommit",
1045610484
"when": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled"
@@ -10459,6 +10487,10 @@
1045910487
"command": "gitlens.ai.explainCommit:graph",
1046010488
"when": "false"
1046110489
},
10490+
{
10491+
"command": "gitlens.ai.explainCommit:views",
10492+
"when": "false"
10493+
},
1046210494
{
1046310495
"command": "gitlens.ai.explainStash",
1046410496
"when": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled"
@@ -10467,6 +10499,10 @@
1046710499
"command": "gitlens.ai.explainStash:graph",
1046810500
"when": "false"
1046910501
},
10502+
{
10503+
"command": "gitlens.ai.explainStash:views",
10504+
"when": "false"
10505+
},
1047010506
{
1047110507
"command": "gitlens.ai.explainWip",
1047210508
"when": "gitlens:enabled && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled"
@@ -10475,6 +10511,10 @@
1047510511
"command": "gitlens.ai.explainWip:graph",
1047610512
"when": "false"
1047710513
},
10514+
{
10515+
"command": "gitlens.ai.explainWip:views",
10516+
"when": "false"
10517+
},
1047810518
{
1047910519
"command": "gitlens.ai.generateChangelog",
1048010520
"when": "gitlens:enabled && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled"
@@ -16451,7 +16491,7 @@
1645116491
"group": "2_gitlens_quickopen@1"
1645216492
},
1645316493
{
16454-
"command": "gitlens.ai.explainBranch",
16494+
"command": "gitlens.ai.explainBranch:views",
1645516495
"when": "viewItem =~ /gitlens:branch\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
1645616496
"group": "3_gitlens_ai@1"
1645716497
},
@@ -16717,7 +16757,7 @@
1671716757
"group": "2_gitlens_quickopen@1"
1671816758
},
1671916759
{
16720-
"command": "gitlens.ai.explainCommit",
16760+
"command": "gitlens.ai.explainCommit:views",
1672116761
"when": "viewItem =~ /gitlens:commit\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
1672216762
"group": "3_gitlens_ai@1"
1672316763
},
@@ -17778,7 +17818,7 @@
1777817818
"group": "1_gitlens_actions@3"
1777917819
},
1778017820
{
17781-
"command": "gitlens.ai.explainStash",
17821+
"command": "gitlens.ai.explainStash:views",
1778217822
"when": "viewItem =~ /gitlens:stash\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
1778317823
"group": "3_gitlens_ai@1"
1778417824
},
@@ -17934,6 +17974,16 @@
1793417974
"when": "viewItem =~ /gitlens:tags\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && !gitlens:hasVirtualFolders",
1793517975
"group": "1_gitlens_actions@1"
1793617976
},
17977+
{
17978+
"command": "gitlens.ai.explainWip:graph",
17979+
"when": "viewItem =~ /gitlens:(worktree|uncommitted)\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
17980+
"group": "3_gitlens_ai@1"
17981+
},
17982+
{
17983+
"command": "gitlens.ai.explainWip:views",
17984+
"when": "viewItem =~ /gitlens:(worktree|uncommitted)\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
17985+
"group": "3_gitlens_ai@1"
17986+
},
1793717987
{
1793817988
"command": "gitlens.views.workspaces.addRepos",
1793917989
"when": "viewItem =~ /gitlens:workspace\\b(?=.*?\\b\\+cloud\\b)/",
@@ -18042,11 +18092,6 @@
1804218092
"when": "viewItem =~ /gitlens:worktree\\b/ && !listMultiSelection",
1804318093
"group": "3_gitlens@1"
1804418094
},
18045-
{
18046-
"command": "gitlens.ai.explainWip",
18047-
"when": "viewItem =~ /gitlens:worktree\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled",
18048-
"group": "3_gitlens_ai@1"
18049-
},
1805018095
{
1805118096
"command": "gitlens.views.deleteWorktree",
1805218097
"when": "viewItem =~ /gitlens:worktree\\b(?!.*?\\b\\+(active|default)\\b)/ && !listMultiSelection && !gitlens:readonly",
@@ -20487,11 +20532,6 @@
2048720532
"when": "webviewItem == gitlens:wip && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && !gitlens:hasVirtualFolders",
2048820533
"group": "1_gitlens_actions@4"
2048920534
},
20490-
{
20491-
"command": "gitlens.ai.explainWip:graph",
20492-
"when": "webviewItem =~ /gitlens:wip\\b/ && !listMultiSelection && !gitlens:readonly && !gitlens:untrusted && gitlens:gk:organization:ai:enabled && config.gitlens.ai.enabled",
20493-
"group": "1_gitlens_actions_3@1"
20494-
},
2049520535
{
2049620536
"command": "gitlens.graph.hideRefGroup",
2049720537
"when": "webviewItemGroup =~ /gitlens:refGroup\\b(?!.*?\\b\\+current\\b)/",

src/commands/explainBranch.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { Source } from '../constants.telemetry';
44
import type { Container } from '../container';
55
import { GitUri } from '../git/gitUri';
66
import type { GitBranch } from '../git/models/branch';
7+
import type { GitBranchReference } from '../git/models/reference';
78
import { showGenericErrorMessage } from '../messages';
89
import { prepareCompareDataForAIRequest } from '../plus/ai/aiProviderService';
910
import { ReferencesQuickPickIncludes, showReferencePicker } from '../quickpicks/referencePicker';
@@ -26,7 +27,7 @@ export interface ExplainBranchCommandArgs {
2627
@command()
2728
export class ExplainBranchCommand extends GlCommandBase {
2829
constructor(private readonly container: Container) {
29-
super('gitlens.ai.explainBranch');
30+
super(['gitlens.ai.explainBranch', 'gitlens.ai.explainBranch:views']);
3031
}
3132

3233
protected override preExecute(context: CommandContext, args?: ExplainBranchCommandArgs): Promise<void> {
@@ -63,15 +64,15 @@ export class ExplainBranchCommand extends GlCommandBase {
6364
// Clarifying the head branch
6465
if (args.ref == null) {
6566
// If no ref is provided, show a picker to select a branch
66-
const pick = await showReferencePicker(
67+
const pick = (await showReferencePicker(
6768
repository.path,
6869
'Explain Branch',
6970
'Choose a branch to explain',
7071
{
7172
include: ReferencesQuickPickIncludes.Branches,
7273
sort: { branches: { current: true } },
7374
},
74-
);
75+
)) as GitBranchReference | undefined;
7576
if (pick?.ref == null) return;
7677
args.ref = pick.ref;
7778
}

src/commands/explainCommit.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export interface ExplainCommitCommandArgs {
2525
@command()
2626
export class ExplainCommitCommand extends GlCommandBase {
2727
constructor(private readonly container: Container) {
28-
super('gitlens.ai.explainCommit');
28+
super(['gitlens.ai.explainCommit', 'gitlens.ai.explainCommit:views']);
2929
}
3030

3131
protected override preExecute(context: CommandContext, args?: ExplainCommitCommandArgs): Promise<void> {

src/commands/explainStash.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export interface ExplainStashCommandArgs {
2424
@command()
2525
export class ExplainStashCommand extends GlCommandBase {
2626
constructor(private readonly container: Container) {
27-
super('gitlens.ai.explainStash');
27+
super(['gitlens.ai.explainStash', 'gitlens.ai.explainStash:views']);
2828
}
2929

3030
protected override preExecute(context: CommandContext, args?: ExplainStashCommandArgs): Promise<void> {

src/commands/explainWip.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export interface ExplainWipCommandArgs {
2828
@command()
2929
export class ExplainWipCommand extends GlCommandBase {
3030
constructor(private readonly container: Container) {
31-
super('gitlens.ai.explainWip');
31+
super(['gitlens.ai.explainWip', 'gitlens.ai.explainWip:views']);
3232
}
3333

3434
protected override preExecute(context: CommandContext, args?: ExplainWipCommandArgs): Promise<void> {

src/constants.commands.generated.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ export type ContributedCommands =
55
| ContributedKeybindingCommands
66
| ContributedPaletteCommands
77
| 'gitlens.ai.explainBranch:graph'
8+
| 'gitlens.ai.explainBranch:views'
89
| 'gitlens.ai.explainCommit:graph'
10+
| 'gitlens.ai.explainCommit:views'
911
| 'gitlens.ai.explainStash:graph'
12+
| 'gitlens.ai.explainStash:views'
1013
| 'gitlens.ai.explainWip:graph'
14+
| 'gitlens.ai.explainWip:views'
1115
| 'gitlens.ai.generateChangelog:views'
1216
| 'gitlens.ai.generateChangelogFrom:graph'
1317
| 'gitlens.ai.generateChangelogFrom:views'

0 commit comments

Comments
 (0)