Skip to content

Commit 8cae5f6

Browse files
authored
use correct icons, remove ellipsis (microsoft#166493)
1 parent 0182a4b commit 8cae5f6

File tree

4 files changed

+30
-28
lines changed

4 files changed

+30
-28
lines changed

src/vs/workbench/contrib/terminal/browser/terminalQuickFixBuiltinActions.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { localize } from 'vs/nls';
77
import { TerminalQuickFixMatchResult, ITerminalQuickFixOptions, ITerminalInstance, TerminalQuickFixAction } from 'vs/workbench/contrib/terminal/browser/terminal';
88
import { ITerminalCommand } from 'vs/workbench/contrib/terminal/common/terminal';
99
import { IExtensionTerminalQuickFix } from 'vs/platform/terminal/common/terminal';
10+
import { TerminalQuickFixType } from 'vs/workbench/contrib/terminal/browser/widgets/terminalQuickFixMenuItems';
1011
export const GitCommandLineRegex = /git/;
1112
export const GitPushCommandLineRegex = /git\s+push/;
1213
export const GitTwoDashesRegex = /error: did you mean `--(.+)` \(with two dashes\)\?/;
@@ -41,7 +42,7 @@ export function gitSimilar(): ITerminalQuickFixOptions {
4142
if (fixedCommand) {
4243
actions.push({
4344
id: 'Git Similar',
44-
type: 'command',
45+
type: TerminalQuickFixType.Command,
4546
command: command.command.replace(/git\s+[^\s]+/, `git ${fixedCommand}`),
4647
addNewLine: true
4748
});
@@ -70,7 +71,7 @@ export function gitTwoDashes(): ITerminalQuickFixOptions {
7071
return;
7172
}
7273
return {
73-
type: 'command',
74+
type: TerminalQuickFixType.Command,
7475
id: 'Git Two Dashes',
7576
command: command.command.replace(` -${problemArg}`, ` --${problemArg}`),
7677
addNewLine: true
@@ -97,7 +98,7 @@ export function freePort(terminalInstance?: Partial<ITerminalInstance>): ITermin
9798
}
9899
const label = localize("terminal.freePort", "Free port {0}", port);
99100
return {
100-
class: undefined,
101+
class: TerminalQuickFixType.Port,
101102
tooltip: label,
102103
id: 'terminal.freePort',
103104
label,

src/vs/workbench/contrib/terminal/browser/widgets/terminalQuickFixMenuItems.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,22 @@ import { localize } from 'vs/nls';
1010
import { ActionListItemKind, IListMenuItem } from 'vs/platform/actionWidget/browser/actionList';
1111
import { IActionItem } from 'vs/platform/actionWidget/common/actionWidget';
1212

13+
export const enum TerminalQuickFixType {
14+
Command = 'command',
15+
Opener = 'opener',
16+
Port = 'port'
17+
}
18+
1319
export class TerminalQuickFix implements IActionItem {
1420
action: IAction;
21+
type: string;
1522
disabled?: boolean;
1623
title?: string;
17-
constructor(action: IAction, title?: string, disabled?: boolean) {
24+
constructor(action: IAction, type: string, title?: string, disabled?: boolean) {
1825
this.action = action;
1926
this.disabled = disabled;
2027
this.title = title;
28+
this.type = type;
2129
}
2230
}
2331

@@ -28,7 +36,7 @@ export function toMenuItems(inputQuickFixes: readonly TerminalQuickFix[], showHe
2836
kind: ActionListItemKind.Header,
2937
group: {
3038
kind: CodeActionKind.QuickFix,
31-
title: localize('codeAction.widget.id.quickfix', 'Quick Fix...')
39+
title: localize('codeAction.widget.id.quickfix', 'Quick Fix')
3240
}
3341
});
3442
for (const quickFix of showHeaders ? inputQuickFixes : inputQuickFixes.filter(i => !!i.action)) {
@@ -50,13 +58,13 @@ export function toMenuItems(inputQuickFixes: readonly TerminalQuickFix[], showHe
5058
}
5159

5260
function getQuickFixIcon(quickFix: TerminalQuickFix): { codicon: Codicon } {
53-
switch (quickFix.action.id) {
54-
case 'quickFix.opener':
61+
switch (quickFix.type) {
62+
case TerminalQuickFixType.Opener:
5563
// TODO: if it's a file link, use the open file icon
5664
return { codicon: Codicon.link };
57-
case 'quickFix.command':
65+
case TerminalQuickFixType.Command:
5866
return { codicon: Codicon.run };
59-
case 'quickFix.freePort':
67+
case TerminalQuickFixType.Port:
6068
return { codicon: Codicon.debugDisconnect };
6169
}
6270
return { codicon: Codicon.lightBulb };

src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ import { IExtensionTerminalQuickFix } from 'vs/platform/terminal/common/terminal
2424
import { URI } from 'vs/base/common/uri';
2525
import { gitCreatePr, gitPushSetUpstream, gitSimilar } from 'vs/workbench/contrib/terminal/browser/terminalQuickFixBuiltinActions';
2626
import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService';
27-
import { ICommandService } from 'vs/platform/commands/common/commands';
2827
import { IActionWidgetService } from 'vs/platform/actionWidget/browser/actionWidget';
2928
import { ActionSet } from 'vs/platform/actionWidget/common/actionWidget';
30-
import { TerminalQuickFix, toMenuItems } from 'vs/workbench/contrib/terminal/browser/widgets/terminalQuickFixMenuItems';
31-
import { previewSelectedActionCommand } from 'vs/platform/actionWidget/browser/actionList';
29+
import { TerminalQuickFix, TerminalQuickFixType, toMenuItems } from 'vs/workbench/contrib/terminal/browser/widgets/terminalQuickFixMenuItems';
3230

3331
const quickFixTelemetryTitle = 'terminal/quick-fix';
3432
type QuickFixResultTelemetryEvent = {
@@ -80,7 +78,6 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon,
8078
@IOpenerService private readonly _openerService: IOpenerService,
8179
@ITelemetryService private readonly _telemetryService: ITelemetryService,
8280
@ILogService private readonly _logService: ILogService,
83-
@ICommandService private readonly _commandService: ICommandService,
8481
@IActionWidgetService private readonly _actionWidgetService: IActionWidgetService
8582
) {
8683
super();
@@ -233,7 +230,7 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon,
233230
};
234231
// TODO: What's documentation do? Need a vscode command?
235232
const documentation = fixes.map(f => { return { id: f.id, title: f.label, tooltip: f.tooltip }; });
236-
const actions = fixes.map(f => new TerminalQuickFix(f, f.label));
233+
const actions = fixes.map(f => new TerminalQuickFix(f, f.class || TerminalQuickFixType.Command, f.label));
237234
const actionSet = {
238235
// TODO: Documentation and actions are separate?
239236
documentation,
@@ -248,13 +245,9 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon,
248245
return;
249246
}
250247
const delegate = {
251-
onSelect: async (fix: TerminalQuickFix, preview?: boolean) => {
252-
if (preview) {
253-
this._commandService.executeCommand(previewSelectedActionCommand);
254-
} else {
255-
fix.action?.run();
256-
this._actionWidgetService.hide();
257-
}
248+
onSelect: async (fix: TerminalQuickFix) => {
249+
fix.action?.run();
250+
this._actionWidgetService.hide();
258251
},
259252
onHide: () => {
260253
this._terminal?.focus();
@@ -303,12 +296,12 @@ export function getQuickFixesForCommand(
303296
let action: IAction | undefined;
304297
if ('type' in quickFix) {
305298
switch (quickFix.type) {
306-
case 'command': {
299+
case TerminalQuickFixType.Command: {
307300
const label = localize('quickFix.command', 'Run: {0}', quickFix.command);
308301
action = {
309302
id: quickFix.id,
310303
label,
311-
class: undefined,
304+
class: quickFix.type,
312305
enabled: true,
313306
run: () => {
314307
onDidRequestRerunCommand?.fire({
@@ -322,12 +315,12 @@ export function getQuickFixesForCommand(
322315
expectedCommands.push(quickFix.command);
323316
break;
324317
}
325-
case 'opener': {
318+
case TerminalQuickFixType.Opener: {
326319
const label = localize('quickFix.opener', 'Open: {0}', quickFix.uri.toString());
327320
action = {
328-
id: `quickFix.opener`,
321+
id: quickFix.id,
329322
label,
330-
class: undefined,
323+
class: quickFix.type,
331324
enabled: true,
332325
run: () => {
333326
openerService.open(quickFix.uri);
@@ -418,7 +411,7 @@ export function convertToQuickFixOptions(quickFix: IExtensionTerminalQuickFix):
418411
}
419412
link = link.replaceAll(varToResolve, value);
420413
}
421-
return link ? { type: 'opener', uri: URI.parse(link) } as ITerminalQuickFixOpenerAction : [];
414+
return link ? { type: 'opener', uri: URI.parse(link), id: quickFix.id } as ITerminalQuickFixOpenerAction : [];
422415
},
423416
exitStatus: quickFix.exitStatus,
424417
source: quickFix.extensionIdentifier

src/vs/workbench/contrib/terminal/test/browser/quickFixAddon.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ suite('QuickFixAddon', () => {
254254
Branch 'test22' set up to track remote branch 'test22' from 'origin'. `;
255255
const exitCode = 0;
256256
const actions = [{
257-
id: `quickFix.opener`,
257+
id: 'Git Create Pr',
258258
enabled: true,
259259
label: 'Open: https://github.com/meganrogge/xterm.js/pull/new/test22',
260260
tooltip: 'Open: https://github.com/meganrogge/xterm.js/pull/new/test22',

0 commit comments

Comments
 (0)