Skip to content

Commit 72a0301

Browse files
committed
Add PR icons and support display name
1 parent 7642e8d commit 72a0301

File tree

7 files changed

+21
-5
lines changed

7 files changed

+21
-5
lines changed

extensions/terminal-suggest/src/completions/gh.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
/* eslint-disable local/code-no-unexternalized-strings */
77

8+
import * as vscode from 'vscode';
89
import { filepaths } from '../helpers/filepaths';
910
import { keyValue } from '../helpers/keyvalue';
1011

@@ -49,7 +50,7 @@ const postProcessRemoteBranches: Fig.Generator["postProcess"] = (out) => {
4950
return {
5051
name,
5152
description: "Branch",
52-
icon: "vscode://icon?type=11",
53+
icon: `vscode://icon?type=${vscode.TerminalCompletionItemKind.Branch}`,
5354
priority: 75,
5455
};
5556
});
@@ -189,8 +190,7 @@ const ghGenerators: Record<string, Fig.Generator> = {
189190
name: number.toString(),
190191
displayName: title,
191192
description: `#${number} | ${headRefName}`,
192-
// allow-any-unicode-next-line
193-
icon: state === "OPEN" ? "✅" : "☑️",
193+
icon: `vscode://icon?type=${state === "OPEN" ? vscode.TerminalCompletionItemKind.PullRequest : vscode.TerminalCompletionItemKind.PullRequestDone}`,
194194
};
195195
});
196196
},

extensions/terminal-suggest/src/fig/figInterface.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ export async function collectCompletionItemResult(
242242
terminalContext.cursorPosition,
243243
prefix,
244244
{ label },
245-
undefined,
245+
item.displayName,
246246
typeof item === 'string' ? item : item.description,
247247
convertIconToKind(item.icon) ?? kind
248248
));
@@ -377,6 +377,8 @@ function convertIconToKind(icon: string | undefined): vscode.TerminalCompletionI
377377
case 'vscode://icon?type=12': return vscode.TerminalCompletionItemKind.Tag;
378378
case 'vscode://icon?type=13': return vscode.TerminalCompletionItemKind.Stash;
379379
case 'vscode://icon?type=14': return vscode.TerminalCompletionItemKind.Remote;
380+
case 'vscode://icon?type=15': return vscode.TerminalCompletionItemKind.PullRequest;
381+
case 'vscode://icon?type=16': return vscode.TerminalCompletionItemKind.PullRequestDone;
380382
default: return undefined;
381383
}
382384
}

src/vs/workbench/api/common/extHostTypes.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2166,6 +2166,8 @@ export enum TerminalCompletionItemKind {
21662166
Tag = 12,
21672167
Stash = 13,
21682168
Remote = 14,
2169+
PullRequest = 15,
2170+
PullRequestDone = 16,
21692171
}
21702172

21712173
export class TerminalCompletionItem implements vscode.TerminalCompletionItem {

src/vs/workbench/contrib/terminalContrib/suggest/browser/terminalCompletionItem.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ export enum TerminalCompletionItemKind {
2626
Tag = 12,
2727
Stash = 13,
2828
Remote = 14,
29+
PullRequest = 15,
30+
PullRequestDone = 16,
2931

3032
// Core-only kinds
3133
InlineSuggestion = 100,

src/vs/workbench/contrib/terminalContrib/suggest/browser/terminalSuggestAddon.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import { TerminalCompletionModel } from './terminalCompletionModel.js';
3434
import { TerminalCompletionItem, TerminalCompletionItemKind, type ITerminalCompletion } from './terminalCompletionItem.js';
3535
import { localize } from '../../../../../nls.js';
3636
import { TerminalSuggestTelemetry } from './terminalSuggestTelemetry.js';
37-
import { terminalSymbolAliasIcon, terminalSymbolArgumentIcon, terminalSymbolEnumMember, terminalSymbolFileIcon, terminalSymbolFlagIcon, terminalSymbolInlineSuggestionIcon, terminalSymbolMethodIcon, terminalSymbolOptionIcon, terminalSymbolFolderIcon, terminalSymbolSymbolicLinkFileIcon, terminalSymbolSymbolicLinkFolderIcon, terminalSymbolCommitIcon, terminalSymbolBranchIcon, terminalSymbolTagIcon, terminalSymbolStashIcon, terminalSymbolRemoteIcon } from './terminalSymbolIcons.js';
37+
import { terminalSymbolAliasIcon, terminalSymbolArgumentIcon, terminalSymbolEnumMember, terminalSymbolFileIcon, terminalSymbolFlagIcon, terminalSymbolInlineSuggestionIcon, terminalSymbolMethodIcon, terminalSymbolOptionIcon, terminalSymbolFolderIcon, terminalSymbolSymbolicLinkFileIcon, terminalSymbolSymbolicLinkFolderIcon, terminalSymbolCommitIcon, terminalSymbolBranchIcon, terminalSymbolTagIcon, terminalSymbolStashIcon, terminalSymbolRemoteIcon, terminalSymbolPullRequestIcon, terminalSymbolPullRequestDoneIcon } from './terminalSymbolIcons.js';
3838
import { TerminalSuggestShownTracker } from './terminalSuggestShownTracker.js';
3939

4040
export interface ISuggestController {
@@ -123,6 +123,8 @@ export class SuggestAddon extends Disposable implements ITerminalAddon, ISuggest
123123
[TerminalCompletionItemKind.Tag, terminalSymbolTagIcon],
124124
[TerminalCompletionItemKind.Stash, terminalSymbolStashIcon],
125125
[TerminalCompletionItemKind.Remote, terminalSymbolRemoteIcon],
126+
[TerminalCompletionItemKind.PullRequest, terminalSymbolPullRequestIcon],
127+
[TerminalCompletionItemKind.PullRequestDone, terminalSymbolPullRequestDoneIcon],
126128
[TerminalCompletionItemKind.InlineSuggestion, terminalSymbolInlineSuggestionIcon],
127129
[TerminalCompletionItemKind.InlineSuggestionAlwaysOnTop, terminalSymbolInlineSuggestionIcon],
128130
]);
@@ -143,6 +145,8 @@ export class SuggestAddon extends Disposable implements ITerminalAddon, ISuggest
143145
[TerminalCompletionItemKind.Tag, localize('tag', 'Tag')],
144146
[TerminalCompletionItemKind.Stash, localize('stash', 'Stash')],
145147
[TerminalCompletionItemKind.Remote, localize('remote', 'Remote')],
148+
[TerminalCompletionItemKind.PullRequest, localize('pullRequest', 'Pull Request')],
149+
[TerminalCompletionItemKind.PullRequestDone, localize('pullRequestDone', 'Pull Request (Done)')],
146150
[TerminalCompletionItemKind.InlineSuggestion, localize('inlineSuggestion', 'Inline Suggestion')],
147151
[TerminalCompletionItemKind.InlineSuggestionAlwaysOnTop, localize('inlineSuggestionAlwaysOnTop', 'Inline Suggestion')],
148152
]);

src/vs/workbench/contrib/terminalContrib/suggest/browser/terminalSymbolIcons.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ export const TERMINAL_SYMBOL_ICON_BRANCH_FOREGROUND = registerColor('terminalSym
2525
export const TERMINAL_SYMBOL_ICON_TAG_FOREGROUND = registerColor('terminalSymbolIcon.tagForeground', SYMBOL_ICON_FILE_FOREGROUND, localize('terminalSymbolIcon.tagForeground', 'The foreground color for a tag icon. These icons will appear in the terminal suggest widget.'));
2626
export const TERMINAL_SYMBOL_ICON_STASH_FOREGROUND = registerColor('terminalSymbolIcon.stashForeground', SYMBOL_ICON_FILE_FOREGROUND, localize('terminalSymbolIcon.stashForeground', 'The foreground color for a stash icon. These icons will appear in the terminal suggest widget.'));
2727
export const TERMINAL_SYMBOL_ICON_REMOTE_FOREGROUND = registerColor('terminalSymbolIcon.remoteForeground', SYMBOL_ICON_FILE_FOREGROUND, localize('terminalSymbolIcon.remoteForeground', 'The foreground color for a remote icon. These icons will appear in the terminal suggest widget.'));
28+
export const TERMINAL_SYMBOL_ICON_PULL_REQUEST_FOREGROUND = registerColor('terminalSymbolIcon.pullRequestForeground', SYMBOL_ICON_FILE_FOREGROUND, localize('terminalSymbolIcon.pullRequestForeground', 'The foreground color for a pull request icon. These icons will appear in the terminal suggest widget.'));
29+
export const TERMINAL_SYMBOL_ICON_PULL_REQUEST_DONE_FOREGROUND = registerColor('terminalSymbolIcon.pullRequestDoneForeground', SYMBOL_ICON_FILE_FOREGROUND, localize('terminalSymbolIcon.pullRequestDoneForeground', 'The foreground color for a completed pull request icon. These icons will appear in the terminal suggest widget.'));
2830

2931
export const TERMINAL_SYMBOL_ICON_SYMBOLIC_LINK_FILE_FOREGROUND = registerColor('terminalSymbolIcon.symbolicLinkFileForeground', SYMBOL_ICON_FILE_FOREGROUND, localize('terminalSymbolIcon.symbolicLinkFileForeground', 'The foreground color for a symbolic link file icon. These icons will appear in the terminal suggest widget.'));
3032
export const TERMINAL_SYMBOL_ICON_SYMBOLIC_LINK_FOLDER_FOREGROUND = registerColor('terminalSymbolIcon.symbolicLinkFolderForeground', SYMBOL_ICON_FOLDER_FOREGROUND, localize('terminalSymbolIcon.symbolicLinkFolderForeground', 'The foreground color for a symbolic link folder icon. These icons will appear in the terminal suggest widget.'));
@@ -44,6 +46,8 @@ export const terminalSymbolBranchIcon = registerIcon('terminal-symbol-branch', C
4446
export const terminalSymbolTagIcon = registerIcon('terminal-symbol-tag', Codicon.tag, localize('terminalSymbolTagIcon', 'Icon for tags in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_TAG_FOREGROUND);
4547
export const terminalSymbolStashIcon = registerIcon('terminal-symbol-stash', Codicon.gitStash, localize('terminalSymbolStashIcon', 'Icon for stashes in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_STASH_FOREGROUND);
4648
export const terminalSymbolRemoteIcon = registerIcon('terminal-symbol-remote', Codicon.remote, localize('terminalSymbolRemoteIcon', 'Icon for remotes in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_REMOTE_FOREGROUND);
49+
export const terminalSymbolPullRequestIcon = registerIcon('terminal-symbol-pull-request', Codicon.gitPullRequest, localize('terminalSymbolPullRequestIcon', 'Icon for pull requests in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_PULL_REQUEST_FOREGROUND);
50+
export const terminalSymbolPullRequestDoneIcon = registerIcon('terminal-symbol-pull-request-done', Codicon.gitPullRequestDone, localize('terminalSymbolPullRequestDoneIcon', 'Icon for completed pull requests in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_PULL_REQUEST_DONE_FOREGROUND);
4751

4852
export const terminalSymbolSymbolicLinkFileIcon = registerIcon('terminal-symbol-symbolic-link-file', Codicon.fileSymlinkFile, localize('terminalSymbolSymbolicLinkFileIcon', 'Icon for symbolic link files in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_SYMBOLIC_LINK_FILE_FOREGROUND);
4953
export const terminalSymbolSymbolicLinkFolderIcon = registerIcon('terminal-symbol-symbolic-link-folder', Codicon.fileSymlinkDirectory, localize('terminalSymbolSymbolicLinkFolderIcon', 'Icon for symbolic link folders in the terminal suggest widget.'), TERMINAL_SYMBOL_ICON_SYMBOLIC_LINK_FOLDER_FOREGROUND);

src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ declare module 'vscode' {
7373
Tag = 12,
7474
Stash = 13,
7575
Remote = 14,
76+
PullRequest = 15,
77+
PullRequestDone = 16,
7678
}
7779

7880
export interface TerminalCompletionContext {

0 commit comments

Comments
 (0)