@codingame/monaco-vscode-issue-service-override 31.0.1 → 32.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.js +89 -42
- package/vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueFormService.js +6 -6
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterModel.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterPage.js +32 -32
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterService.js +1 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueService.js +6 -2
- package/vscode/src/vs/workbench/contrib/issue/browser/issueTroubleshoot.js +23 -23
- package/vscode/src/vs/workbench/contrib/issue/browser/media/issueReporter.css +7 -0
- package/vscode/src/vs/workbench/contrib/issue/common/issue.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/issue/common/issue.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-issue-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "32.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - issue service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "32.0.0"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -60,6 +60,9 @@ export declare class BaseIssueReporterService extends Disposable {
|
|
|
60
60
|
private updatePublicRepoLink;
|
|
61
61
|
private updateInternalGithubButton;
|
|
62
62
|
private updateInternalElementsVisibility;
|
|
63
|
+
private preSubmitButtonLabel;
|
|
64
|
+
private getSubmitButtonElement;
|
|
65
|
+
private setSubmittingState;
|
|
63
66
|
private updateIssueReporterUri;
|
|
64
67
|
private handleExtensionData;
|
|
65
68
|
private updateExtensionSelector;
|
|
@@ -116,19 +116,34 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
116
116
|
fileOnMarketplace,
|
|
117
117
|
fileOnProduct
|
|
118
118
|
});
|
|
119
|
-
this.createAction = this._register(( new Action("issueReporter.create", ( localize(
|
|
119
|
+
this.createAction = this._register(( new Action("issueReporter.create", ( localize(10486, "Create on GitHub")), undefined, true, async () => {
|
|
120
120
|
this.delayedSubmit.trigger(async () => {
|
|
121
|
-
this.
|
|
121
|
+
this.setSubmittingState(true);
|
|
122
|
+
try {
|
|
123
|
+
await this.createIssue(true);
|
|
124
|
+
} finally {
|
|
125
|
+
this.setSubmittingState(false);
|
|
126
|
+
}
|
|
122
127
|
});
|
|
123
128
|
})));
|
|
124
|
-
this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(
|
|
129
|
+
this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(10487, "Preview on GitHub")), undefined, true, async () => {
|
|
125
130
|
this.delayedSubmit.trigger(async () => {
|
|
126
|
-
this.
|
|
131
|
+
this.setSubmittingState(true);
|
|
132
|
+
try {
|
|
133
|
+
await this.createIssue(false);
|
|
134
|
+
} finally {
|
|
135
|
+
this.setSubmittingState(false);
|
|
136
|
+
}
|
|
127
137
|
});
|
|
128
138
|
})));
|
|
129
|
-
this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(
|
|
139
|
+
this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(10488, "Create Internally")), undefined, true, async () => {
|
|
130
140
|
this.delayedSubmit.trigger(async () => {
|
|
131
|
-
this.
|
|
141
|
+
this.setSubmittingState(true);
|
|
142
|
+
try {
|
|
143
|
+
await this.createIssue(true, true);
|
|
144
|
+
} finally {
|
|
145
|
+
this.setSubmittingState(false);
|
|
146
|
+
}
|
|
132
147
|
});
|
|
133
148
|
})));
|
|
134
149
|
const issueTitle = data.issueTitle;
|
|
@@ -226,7 +241,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
226
241
|
filingNote.classList.add("internal-preview-message");
|
|
227
242
|
container.appendChild(filingNote);
|
|
228
243
|
}
|
|
229
|
-
filingNote.textContent = escape(( localize(
|
|
244
|
+
filingNote.textContent = escape(( localize(10489, "If your copilot debug logs contain private information:")));
|
|
230
245
|
}
|
|
231
246
|
updatePublicGithubButton(container) {
|
|
232
247
|
const issueReporterElement = this.getElementById("issue-reporter");
|
|
@@ -238,7 +253,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
238
253
|
}
|
|
239
254
|
if (!this.acknowledged && this.needsUpdate) {
|
|
240
255
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
241
|
-
this.publicGithubButton.label = ( localize(
|
|
256
|
+
this.publicGithubButton.label = ( localize(10490, "Confirm Version Acknowledgement"));
|
|
242
257
|
this.publicGithubButton.enabled = false;
|
|
243
258
|
} else if (this.data.githubAccessToken && this.isPreviewEnabled()) {
|
|
244
259
|
this.publicGithubButton = this._register(( new ButtonWithDropdown(container, {
|
|
@@ -250,21 +265,21 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
250
265
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
251
266
|
this.createAction.run();
|
|
252
267
|
}));
|
|
253
|
-
this.publicGithubButton.label = ( localize(
|
|
268
|
+
this.publicGithubButton.label = ( localize(10491, "Create on GitHub"));
|
|
254
269
|
this.publicGithubButton.enabled = true;
|
|
255
270
|
} else if (this.data.githubAccessToken && !this.isPreviewEnabled()) {
|
|
256
271
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
257
272
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
258
273
|
this.createAction.run();
|
|
259
274
|
}));
|
|
260
|
-
this.publicGithubButton.label = ( localize(
|
|
275
|
+
this.publicGithubButton.label = ( localize(10491, "Create on GitHub"));
|
|
261
276
|
this.publicGithubButton.enabled = true;
|
|
262
277
|
} else {
|
|
263
278
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
264
279
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
265
280
|
this.previewAction.run();
|
|
266
281
|
}));
|
|
267
|
-
this.publicGithubButton.label = ( localize(
|
|
282
|
+
this.publicGithubButton.label = ( localize(10492, "Preview on GitHub"));
|
|
268
283
|
this.publicGithubButton.enabled = true;
|
|
269
284
|
}
|
|
270
285
|
const repoLink = this.getElementById("show-repo-name");
|
|
@@ -317,7 +332,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
317
332
|
}));
|
|
318
333
|
this.internalGithubButton.element.id = "internal-create-btn";
|
|
319
334
|
this.internalGithubButton.element.classList.add("internal-create-subtle");
|
|
320
|
-
this.internalGithubButton.label = ( localize(
|
|
335
|
+
this.internalGithubButton.label = ( localize(10493, "Create Internally"));
|
|
321
336
|
this.internalGithubButton.enabled = true;
|
|
322
337
|
this.internalGithubButton.setTitle(this.data.privateUri.path.slice(1));
|
|
323
338
|
}
|
|
@@ -338,6 +353,33 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
338
353
|
container.style.display = "none";
|
|
339
354
|
}
|
|
340
355
|
}
|
|
356
|
+
getSubmitButtonElement() {
|
|
357
|
+
if (this.publicGithubButton instanceof ButtonWithDropdown) {
|
|
358
|
+
return this.publicGithubButton.primaryButton.element;
|
|
359
|
+
}
|
|
360
|
+
return this.publicGithubButton.element;
|
|
361
|
+
}
|
|
362
|
+
setSubmittingState(submitting) {
|
|
363
|
+
this.publicGithubButton.enabled = !submitting;
|
|
364
|
+
if (this.internalGithubButton) {
|
|
365
|
+
this.internalGithubButton.enabled = !submitting;
|
|
366
|
+
}
|
|
367
|
+
const buttonEl = this.getSubmitButtonElement();
|
|
368
|
+
if (submitting) {
|
|
369
|
+
const currentLabel = this.publicGithubButton instanceof ButtonWithDropdown ? this.publicGithubButton.primaryButton.label : this.publicGithubButton.label;
|
|
370
|
+
this.preSubmitButtonLabel = typeof currentLabel === "string" ? currentLabel : "";
|
|
371
|
+
this.publicGithubButton.label = ( localize(10494, "Submitting..."));
|
|
372
|
+
const spinnerIcon = renderIcon(ThemeIcon.modify(Codicon.loading, "spin"));
|
|
373
|
+
buttonEl.prepend(spinnerIcon);
|
|
374
|
+
} else {
|
|
375
|
+
const spinnerEl = buttonEl.querySelector(".codicon-loading");
|
|
376
|
+
spinnerEl?.remove();
|
|
377
|
+
if (this.preSubmitButtonLabel !== undefined) {
|
|
378
|
+
this.publicGithubButton.label = this.preSubmitButtonLabel;
|
|
379
|
+
this.preSubmitButtonLabel = undefined;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
341
383
|
async updateIssueReporterUri(extension) {
|
|
342
384
|
try {
|
|
343
385
|
if (extension.uri) {
|
|
@@ -398,7 +440,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
398
440
|
const {
|
|
399
441
|
selectedExtension
|
|
400
442
|
} = this.issueReporterModel.getData();
|
|
401
|
-
reset(extensionsSelector, this.makeOption("", ( localize(
|
|
443
|
+
reset(extensionsSelector, this.makeOption("", ( localize(10495, "Select extension")), true), ...( extensionOptions.map(extension => makeOption(extension, selectedExtension))));
|
|
402
444
|
if (!selectedExtension) {
|
|
403
445
|
extensionsSelector.selectedIndex = 0;
|
|
404
446
|
}
|
|
@@ -502,10 +544,10 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
502
544
|
const info = containingElement && containingElement.lastElementChild;
|
|
503
545
|
if (info && info.classList.contains("hidden")) {
|
|
504
546
|
show(info);
|
|
505
|
-
label.textContent = ( localize(
|
|
547
|
+
label.textContent = ( localize(10496, "hide"));
|
|
506
548
|
} else {
|
|
507
549
|
hide(info);
|
|
508
|
-
label.textContent = ( localize(
|
|
550
|
+
label.textContent = ( localize(10497, "show"));
|
|
509
551
|
}
|
|
510
552
|
}
|
|
511
553
|
});
|
|
@@ -526,13 +568,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
526
568
|
}
|
|
527
569
|
const descriptionTextArea = this.getElementById("issue-title");
|
|
528
570
|
if (value === IssueSource.VSCode) {
|
|
529
|
-
descriptionTextArea.placeholder = ( localize(
|
|
571
|
+
descriptionTextArea.placeholder = ( localize(10498, "E.g Workbench is missing problems panel"));
|
|
530
572
|
} else if (value === IssueSource.Extension) {
|
|
531
|
-
descriptionTextArea.placeholder = ( localize(
|
|
573
|
+
descriptionTextArea.placeholder = ( localize(10499, "E.g. Missing alt text on extension readme image"));
|
|
532
574
|
} else if (value === IssueSource.Marketplace) {
|
|
533
|
-
descriptionTextArea.placeholder = ( localize(
|
|
575
|
+
descriptionTextArea.placeholder = ( localize(10500, "E.g Cannot disable installed extension"));
|
|
534
576
|
} else {
|
|
535
|
-
descriptionTextArea.placeholder = ( localize(
|
|
577
|
+
descriptionTextArea.placeholder = ( localize(10501, "Please enter a title"));
|
|
536
578
|
}
|
|
537
579
|
let fileOnExtension, fileOnMarketplace, fileOnProduct = false;
|
|
538
580
|
if (value === IssueSource.Extension) {
|
|
@@ -606,8 +648,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
606
648
|
const cmdOrCtrlKey = isMacintosh ? e.metaKey : e.ctrlKey;
|
|
607
649
|
if (cmdOrCtrlKey && e.key === "Enter") {
|
|
608
650
|
this.delayedSubmit.trigger(async () => {
|
|
609
|
-
|
|
610
|
-
|
|
651
|
+
this.setSubmittingState(true);
|
|
652
|
+
try {
|
|
653
|
+
if (await this.createIssue()) {
|
|
654
|
+
this.close();
|
|
655
|
+
}
|
|
656
|
+
} finally {
|
|
657
|
+
this.setSubmittingState(false);
|
|
611
658
|
}
|
|
612
659
|
});
|
|
613
660
|
}
|
|
@@ -769,7 +816,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
769
816
|
if (results.length) {
|
|
770
817
|
const issues = $("div.issues-container");
|
|
771
818
|
const issuesText = $("div.list-title");
|
|
772
|
-
issuesText.textContent = ( localize(
|
|
819
|
+
issuesText.textContent = ( localize(10502, "Similar issues"));
|
|
773
820
|
this.numberOfSearchResultsDisplayed = results.length < 5 ? results.length : 5;
|
|
774
821
|
for (let i = 0; i < this.numberOfSearchResultsDisplayed; i++) {
|
|
775
822
|
const issue = results[i];
|
|
@@ -789,8 +836,8 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
789
836
|
renderIcon(issue.state === "open" ? Codicon.issueOpened : Codicon.issueClosed)
|
|
790
837
|
);
|
|
791
838
|
const issueStateLabel = $("span.issue-state.label");
|
|
792
|
-
issueStateLabel.textContent = issue.state === "open" ? ( localize(
|
|
793
|
-
issueState.title = issue.state === "open" ? ( localize(
|
|
839
|
+
issueStateLabel.textContent = issue.state === "open" ? ( localize(10503, "Open")) : ( localize(10504, "Closed"));
|
|
840
|
+
issueState.title = issue.state === "open" ? ( localize(10503, "Open")) : ( localize(10504, "Closed"));
|
|
794
841
|
issueState.appendChild(issueIcon);
|
|
795
842
|
issueState.appendChild(issueStateLabel);
|
|
796
843
|
item = $("div.issue", undefined, issueState, link);
|
|
@@ -811,7 +858,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
811
858
|
const {
|
|
812
859
|
issueType
|
|
813
860
|
} = this.issueReporterModel.getData();
|
|
814
|
-
reset(typeSelect, makeOption(IssueType.Bug, ( localize(
|
|
861
|
+
reset(typeSelect, makeOption(IssueType.Bug, ( localize(10505, "Bug Report"))), makeOption(IssueType.FeatureRequest, ( localize(10506, "Feature Request"))), makeOption(IssueType.PerformanceIssue, ( localize(10507, "Performance Issue (freeze, slow, crash)"))));
|
|
815
862
|
typeSelect.value = ( issueType.toString());
|
|
816
863
|
this.setSourceOptions();
|
|
817
864
|
}
|
|
@@ -844,14 +891,14 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
844
891
|
}
|
|
845
892
|
}
|
|
846
893
|
sourceSelect.innerText = "";
|
|
847
|
-
sourceSelect.append(this.makeOption("", ( localize(
|
|
848
|
-
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(
|
|
849
|
-
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(
|
|
894
|
+
sourceSelect.append(this.makeOption("", ( localize(10508, "Select source")), true));
|
|
895
|
+
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(10509, "Visual Studio Code")), false));
|
|
896
|
+
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(10510, "A VS Code extension")), false));
|
|
850
897
|
if (this.product.reportMarketplaceIssueUrl) {
|
|
851
|
-
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(
|
|
898
|
+
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(10511, "Extensions Marketplace")), false));
|
|
852
899
|
}
|
|
853
900
|
if (issueType !== IssueType.FeatureRequest) {
|
|
854
|
-
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(
|
|
901
|
+
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(10512, "Don't know")), false));
|
|
855
902
|
}
|
|
856
903
|
if (selected !== -1 && selected < sourceSelect.options.length) {
|
|
857
904
|
sourceSelect.selectedIndex = selected;
|
|
@@ -907,7 +954,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
907
954
|
const fileName = `extensionData_${formattedDate}_${formattedTime}.md`;
|
|
908
955
|
const handleLinkClick = async () => {
|
|
909
956
|
const downloadPath = await this.fileDialogService.showSaveDialog({
|
|
910
|
-
title: ( localize(
|
|
957
|
+
title: ( localize(10513, "Save Extension Data")),
|
|
911
958
|
availableFileSystems: [Schemas.file],
|
|
912
959
|
defaultUri: joinPath(await this.fileDialogService.defaultFilePath(Schemas.file), fileName)
|
|
913
960
|
});
|
|
@@ -923,13 +970,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
923
970
|
if (selectedExtension && this.nonGitHubIssueUrl) {
|
|
924
971
|
hide(titleTextArea);
|
|
925
972
|
hide(descriptionTextArea);
|
|
926
|
-
reset(descriptionTitle, ( localize(
|
|
973
|
+
reset(descriptionTitle, ( localize(10514, "This extension handles issues outside of VS Code")));
|
|
927
974
|
reset(descriptionSubtitle, ( localize(
|
|
928
|
-
|
|
975
|
+
10515,
|
|
929
976
|
"The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.",
|
|
930
977
|
selectedExtension.displayName
|
|
931
978
|
)));
|
|
932
|
-
this.publicGithubButton.label = ( localize(
|
|
979
|
+
this.publicGithubButton.label = ( localize(10516, "Open External Issue Reporter"));
|
|
933
980
|
return;
|
|
934
981
|
}
|
|
935
982
|
if (fileOnExtension && selectedExtension?.data) {
|
|
@@ -956,9 +1003,9 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
956
1003
|
show(extensionsBlock);
|
|
957
1004
|
}
|
|
958
1005
|
}
|
|
959
|
-
reset(descriptionTitle, ( localize(
|
|
1006
|
+
reset(descriptionTitle, ( localize(10517, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
|
|
960
1007
|
reset(descriptionSubtitle, ( localize(
|
|
961
|
-
|
|
1008
|
+
10518,
|
|
962
1009
|
"Share the steps needed to reliably reproduce the problem. Please include actual and expected results. We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
|
|
963
1010
|
)));
|
|
964
1011
|
} else if (issueType === IssueType.PerformanceIssue) {
|
|
@@ -974,15 +1021,15 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
974
1021
|
} else if (!fileOnMarketplace) {
|
|
975
1022
|
show(extensionsBlock);
|
|
976
1023
|
}
|
|
977
|
-
reset(descriptionTitle, ( localize(
|
|
1024
|
+
reset(descriptionTitle, ( localize(10517, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
|
|
978
1025
|
reset(descriptionSubtitle, ( localize(
|
|
979
|
-
|
|
1026
|
+
10519,
|
|
980
1027
|
"When did this performance issue happen? Does it occur on startup or after a specific series of actions? We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
|
|
981
1028
|
)));
|
|
982
1029
|
} else if (issueType === IssueType.FeatureRequest) {
|
|
983
|
-
reset(descriptionTitle, ( localize(
|
|
1030
|
+
reset(descriptionTitle, ( localize(10520, "Description")) + " ", $("span.required-input", undefined, "*"));
|
|
984
1031
|
reset(descriptionSubtitle, ( localize(
|
|
985
|
-
|
|
1032
|
+
10521,
|
|
986
1033
|
"Please describe the feature you would like to see. We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
|
|
987
1034
|
)));
|
|
988
1035
|
}
|
|
@@ -1113,7 +1160,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1113
1160
|
throw ( new CancellationError());
|
|
1114
1161
|
}
|
|
1115
1162
|
return baseUrl + `&body=${encodeURIComponent(( localize(
|
|
1116
|
-
|
|
1163
|
+
10522,
|
|
1117
1164
|
"We have written the needed data into your clipboard because it was too large to send. Please paste."
|
|
1118
1165
|
)))}`;
|
|
1119
1166
|
}
|
|
@@ -1302,7 +1349,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1302
1349
|
const target = this.window.document.querySelector(".block-extensions .block-info");
|
|
1303
1350
|
if (target) {
|
|
1304
1351
|
if (this.disableExtensions) {
|
|
1305
|
-
reset(target, ( localize(
|
|
1352
|
+
reset(target, ( localize(10523, "Extensions are disabled")));
|
|
1306
1353
|
return;
|
|
1307
1354
|
}
|
|
1308
1355
|
const themeExclusionStr = numThemeExtensions ? `\n(${numThemeExtensions} theme extensions excluded)` : "";
|
|
@@ -32,5 +32,5 @@ let WebIssueContribution = class WebIssueContribution extends BaseIssueContribut
|
|
|
32
32
|
WebIssueContribution = ( __decorate([( __param(0, IProductService)), ( __param(1, IConfigurationService))], WebIssueContribution));
|
|
33
33
|
( Registry.as(Extensions$1.Workbench)).registerWorkbenchContribution(WebIssueContribution, LifecyclePhase.Restored);
|
|
34
34
|
CommandsRegistry.registerCommand("_issues.getSystemStatus", accessor => {
|
|
35
|
-
return localize(
|
|
35
|
+
return localize(10524, "The --status argument is not yet supported in browsers.");
|
|
36
36
|
});
|
|
@@ -157,17 +157,17 @@ let IssueFormService = class IssueFormService {
|
|
|
157
157
|
await this.dialogService.prompt({
|
|
158
158
|
type: Severity.Warning,
|
|
159
159
|
message: ( localize(
|
|
160
|
-
|
|
160
|
+
10525,
|
|
161
161
|
"Your input will not be saved. Are you sure you want to close this window?"
|
|
162
162
|
)),
|
|
163
163
|
buttons: [{
|
|
164
|
-
label: ( localize(
|
|
164
|
+
label: ( localize(10526, "&&Yes")),
|
|
165
165
|
run: () => {
|
|
166
166
|
this.closeReporter();
|
|
167
167
|
this.issueReporterWindow = null;
|
|
168
168
|
}
|
|
169
169
|
}, {
|
|
170
|
-
label: ( localize(
|
|
170
|
+
label: ( localize(10527, "Cancel")),
|
|
171
171
|
run: () => {}
|
|
172
172
|
}]
|
|
173
173
|
});
|
|
@@ -177,16 +177,16 @@ let IssueFormService = class IssueFormService {
|
|
|
177
177
|
await this.dialogService.prompt({
|
|
178
178
|
type: Severity.Warning,
|
|
179
179
|
message: ( localize(
|
|
180
|
-
|
|
180
|
+
10528,
|
|
181
181
|
"There is too much data to send to GitHub directly. The data will be copied to the clipboard, please paste it into the GitHub issue page that is opened."
|
|
182
182
|
)),
|
|
183
183
|
buttons: [{
|
|
184
|
-
label: ( localize(
|
|
184
|
+
label: ( localize(10529, "&&OK")),
|
|
185
185
|
run: () => {
|
|
186
186
|
result = true;
|
|
187
187
|
}
|
|
188
188
|
}, {
|
|
189
|
-
label: ( localize(
|
|
189
|
+
label: ( localize(10527, "Cancel")),
|
|
190
190
|
run: () => {
|
|
191
191
|
result = false;
|
|
192
192
|
}
|
|
@@ -44,7 +44,7 @@ class IssueReporterModel {
|
|
|
44
44
|
}
|
|
45
45
|
return `
|
|
46
46
|
Type: <b>${this.getIssueTypeTitle()}</b>
|
|
47
|
-
|
|
47
|
+
${this._data.isSessionsWindow ? "\nWindow: Agents\n" : ""}
|
|
48
48
|
${this._data.issueDescription}
|
|
49
49
|
${this.getExtensionVersion()}
|
|
50
50
|
VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
import { escape } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
3
3
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
4
4
|
|
|
5
|
-
const sendSystemInfoLabel = escape(( localize(
|
|
6
|
-
const sendProcessInfoLabel = escape(( localize(
|
|
7
|
-
const sendWorkspaceInfoLabel = escape(( localize(
|
|
8
|
-
const sendExtensionsLabel = escape(( localize(
|
|
9
|
-
const sendExperimentsLabel = escape(( localize(
|
|
10
|
-
const sendExtensionData = escape(( localize(
|
|
5
|
+
const sendSystemInfoLabel = escape(( localize(10530, "Include my system information")));
|
|
6
|
+
const sendProcessInfoLabel = escape(( localize(10531, "Include my currently running processes")));
|
|
7
|
+
const sendWorkspaceInfoLabel = escape(( localize(10532, "Include my workspace metadata")));
|
|
8
|
+
const sendExtensionsLabel = escape(( localize(10533, "Include my enabled extensions")));
|
|
9
|
+
const sendExperimentsLabel = escape(( localize(10534, "Include A/B experiment info")));
|
|
10
|
+
const sendExtensionData = escape(( localize(10535, "Include additional extension info")));
|
|
11
11
|
const acknowledgementsLabel = escape(( localize(
|
|
12
|
-
|
|
12
|
+
10536,
|
|
13
13
|
"I acknowledge that my VS Code version is not updated and this issue may be closed."
|
|
14
14
|
)));
|
|
15
15
|
const reviewGuidanceLabel = ( localize(
|
|
16
|
-
|
|
16
|
+
10537,
|
|
17
17
|
"Before you report an issue here please <a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">review the guidance we provide</a>. Please complete the form in English."
|
|
18
18
|
));
|
|
19
19
|
var BaseHtml = () => `
|
|
@@ -23,40 +23,40 @@ var BaseHtml = () => `
|
|
|
23
23
|
</span>
|
|
24
24
|
</div>
|
|
25
25
|
<div class="issue-reporter" id="issue-reporter">
|
|
26
|
-
<div id="english" class="input-group hidden">${escape(( localize(
|
|
26
|
+
<div id="english" class="input-group hidden">${escape(( localize(10538, "Please complete the form in English.")))}</div>
|
|
27
27
|
|
|
28
28
|
<div id="review-guidance-help-text" class="input-group">${reviewGuidanceLabel}</div>
|
|
29
29
|
|
|
30
30
|
<div class="section">
|
|
31
31
|
<div class="input-group">
|
|
32
|
-
<label class="inline-label" for="issue-type">${escape(( localize(
|
|
32
|
+
<label class="inline-label" for="issue-type">${escape(( localize(10539, "This is a")))}</label>
|
|
33
33
|
<select id="issue-type" class="inline-form-control">
|
|
34
34
|
<!-- To be dynamically filled -->
|
|
35
35
|
</select>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
<div class="input-group" id="problem-source">
|
|
39
|
-
<label class="inline-label" for="issue-source">${escape(( localize(
|
|
39
|
+
<label class="inline-label" for="issue-source">${escape(( localize(10540, "For")))} <span class="required-input">*</span></label>
|
|
40
40
|
<select id="issue-source" class="inline-form-control" required>
|
|
41
41
|
<!-- To be dynamically filled -->
|
|
42
42
|
</select>
|
|
43
|
-
<div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
43
|
+
<div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10541, "An issue source is required.")))}</div>
|
|
44
44
|
<div id="problem-source-help-text" class="instructions hidden">${escape(( localize(
|
|
45
|
-
|
|
45
|
+
10542,
|
|
46
46
|
"Try to reproduce the problem after {0}. If the problem only reproduces when extensions are active, it is likely an issue with an extension."
|
|
47
47
|
))).replace(
|
|
48
48
|
"{0}",
|
|
49
|
-
() => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(
|
|
49
|
+
() => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(10543, "disabling all extensions and reloading the window")))}</span>`
|
|
50
50
|
)}
|
|
51
51
|
</div>
|
|
52
52
|
|
|
53
53
|
<div id="extension-selection">
|
|
54
|
-
<label class="inline-label" for="extension-selector">${escape(( localize(
|
|
54
|
+
<label class="inline-label" for="extension-selector">${escape(( localize(10544, "Extension")))} <span class="required-input">*</span></label>
|
|
55
55
|
<select id="extension-selector" class="inline-form-control">
|
|
56
56
|
<!-- To be dynamically filled -->
|
|
57
57
|
</select>
|
|
58
58
|
<div id="extension-selection-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
59
|
-
|
|
59
|
+
10545,
|
|
60
60
|
"The issue reporter is unable to create issues for this extension. Please visit {0} to report an issue."
|
|
61
61
|
))).replace(
|
|
62
62
|
"{0}",
|
|
@@ -64,7 +64,7 @@ var BaseHtml = () => `
|
|
|
64
64
|
)}</div>
|
|
65
65
|
<div id="extension-selection-validation-error-no-url" class="validation-error hidden" role="alert">
|
|
66
66
|
${escape(( localize(
|
|
67
|
-
|
|
67
|
+
10546,
|
|
68
68
|
"The issue reporter is unable to create issues for this extension, as it does not specify a URL for reporting issues. Please check the marketplace page of this extension to see if other instructions are available."
|
|
69
69
|
)))}
|
|
70
70
|
</div>
|
|
@@ -72,10 +72,10 @@ var BaseHtml = () => `
|
|
|
72
72
|
</div>
|
|
73
73
|
|
|
74
74
|
<div id="issue-title-container" class="input-group">
|
|
75
|
-
<label class="inline-label" for="issue-title">${escape(( localize(
|
|
76
|
-
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(
|
|
77
|
-
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
78
|
-
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
75
|
+
<label class="inline-label" for="issue-title">${escape(( localize(10547, "Title")))} <span class="required-input">*</span></label>
|
|
76
|
+
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(10548, "Please enter a title.")))}" required>
|
|
77
|
+
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10549, "A title is required.")))}</div>
|
|
78
|
+
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(10550, "The title is too long.")))}</div>
|
|
79
79
|
<small id="similar-issues">
|
|
80
80
|
<!-- To be dynamically filled -->
|
|
81
81
|
</small>
|
|
@@ -91,10 +91,10 @@ var BaseHtml = () => `
|
|
|
91
91
|
<!-- To be dynamically filled -->
|
|
92
92
|
</div>
|
|
93
93
|
<div class="block-info-text">
|
|
94
|
-
<textarea name="description" id="description" placeholder="${escape(( localize(
|
|
94
|
+
<textarea name="description" id="description" placeholder="${escape(( localize(10551, "Please enter details.")))}" required></textarea>
|
|
95
95
|
</div>
|
|
96
|
-
<div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
97
|
-
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
96
|
+
<div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10552, "A description is required.")))}</div>
|
|
97
|
+
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(10553, "Please provide a longer description.")))}</div>
|
|
98
98
|
</div>
|
|
99
99
|
|
|
100
100
|
<div class="system-info" id="block-container">
|
|
@@ -103,10 +103,10 @@ var BaseHtml = () => `
|
|
|
103
103
|
<label class="extension-caption" id="extension-caption" for="includeExtensionData">
|
|
104
104
|
${sendExtensionData}
|
|
105
105
|
<span id="ext-loading" hidden></span>
|
|
106
|
-
<span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(
|
|
107
|
-
<a id="extension-data-download">${escape(( localize(
|
|
106
|
+
<span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(10554, "show")))}</a><span class="ext-parens" hidden>)</span>
|
|
107
|
+
<a id="extension-data-download">${escape(( localize(10555, "Download Extension Data")))}</a>
|
|
108
108
|
</label>
|
|
109
|
-
<pre class="block-info" id="extension-data" placeholder="${escape(( localize(
|
|
109
|
+
<pre class="block-info" id="extension-data" placeholder="${escape(( localize(10556, "Extension does not have additional data to include.")))}" style="white-space: pre-wrap; user-select: text;">
|
|
110
110
|
<!-- To be dynamically filled -->
|
|
111
111
|
</pre>
|
|
112
112
|
</div>
|
|
@@ -115,7 +115,7 @@ var BaseHtml = () => `
|
|
|
115
115
|
<input class="sendData" aria-label="${sendSystemInfoLabel}" type="checkbox" id="includeSystemInfo" checked/>
|
|
116
116
|
<label class="caption" for="includeSystemInfo">
|
|
117
117
|
${sendSystemInfoLabel}
|
|
118
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
118
|
+
(<a href="#" class="showInfo">${escape(( localize(10554, "show")))}</a>)
|
|
119
119
|
</label>
|
|
120
120
|
<div class="block-info hidden" style="user-select: text;">
|
|
121
121
|
<!-- To be dynamically filled -->
|
|
@@ -125,7 +125,7 @@ var BaseHtml = () => `
|
|
|
125
125
|
<input class="sendData" aria-label="${sendProcessInfoLabel}" type="checkbox" id="includeProcessInfo" checked/>
|
|
126
126
|
<label class="caption" for="includeProcessInfo">
|
|
127
127
|
${sendProcessInfoLabel}
|
|
128
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
128
|
+
(<a href="#" class="showInfo">${escape(( localize(10554, "show")))}</a>)
|
|
129
129
|
</label>
|
|
130
130
|
<pre class="block-info hidden" style="user-select: text;">
|
|
131
131
|
<code>
|
|
@@ -137,7 +137,7 @@ var BaseHtml = () => `
|
|
|
137
137
|
<input class="sendData" aria-label="${sendWorkspaceInfoLabel}" type="checkbox" id="includeWorkspaceInfo" checked/>
|
|
138
138
|
<label class="caption" for="includeWorkspaceInfo">
|
|
139
139
|
${sendWorkspaceInfoLabel}
|
|
140
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
140
|
+
(<a href="#" class="showInfo">${escape(( localize(10554, "show")))}</a>)
|
|
141
141
|
</label>
|
|
142
142
|
<pre id="systemInfo" class="block-info hidden" style="user-select: text;">
|
|
143
143
|
<code>
|
|
@@ -149,7 +149,7 @@ var BaseHtml = () => `
|
|
|
149
149
|
<input class="sendData" aria-label="${sendExtensionsLabel}" type="checkbox" id="includeExtensions" checked/>
|
|
150
150
|
<label class="caption" for="includeExtensions">
|
|
151
151
|
${sendExtensionsLabel}
|
|
152
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
152
|
+
(<a href="#" class="showInfo">${escape(( localize(10554, "show")))}</a>)
|
|
153
153
|
</label>
|
|
154
154
|
<div id="systemInfo" class="block-info hidden" style="user-select: text;">
|
|
155
155
|
<!-- To be dynamically filled -->
|
|
@@ -159,7 +159,7 @@ var BaseHtml = () => `
|
|
|
159
159
|
<input class="sendData" aria-label="${sendExperimentsLabel}" type="checkbox" id="includeExperiments" checked/>
|
|
160
160
|
<label class="caption" for="includeExperiments">
|
|
161
161
|
${sendExperimentsLabel}
|
|
162
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
162
|
+
(<a href="#" class="showInfo">${escape(( localize(10554, "show")))}</a>)
|
|
163
163
|
</label>
|
|
164
164
|
<pre class="block-info hidden" style="user-select: text;">
|
|
165
165
|
<!-- To be dynamically filled -->
|
|
@@ -60,7 +60,7 @@ let IssueWebReporter = class IssueWebReporter extends BaseIssueReporterService {
|
|
|
60
60
|
});
|
|
61
61
|
const descriptionTextArea = this.getElementById("issue-title");
|
|
62
62
|
if (descriptionTextArea) {
|
|
63
|
-
descriptionTextArea.placeholder = ( localize(
|
|
63
|
+
descriptionTextArea.placeholder = ( localize(10557, "Please enter a title"));
|
|
64
64
|
}
|
|
65
65
|
this.updateButtonStates();
|
|
66
66
|
this.setSourceOptions();
|
|
@@ -11,6 +11,7 @@ import { IIssueFormService } from "@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
11
11
|
import { IWorkbenchAssignmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service";
|
|
12
12
|
import { IAuthenticationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/authentication.service";
|
|
13
13
|
import { IWorkbenchExtensionEnablementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service";
|
|
14
|
+
import { IWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service";
|
|
14
15
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
15
16
|
import { IIntegrityService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/integrity/common/integrity.service";
|
|
16
17
|
export declare class BrowserIssueService implements IWorkbenchIssueService {
|
|
@@ -26,8 +27,9 @@ export declare class BrowserIssueService implements IWorkbenchIssueService {
|
|
|
26
27
|
private readonly authenticationService;
|
|
27
28
|
private readonly configurationService;
|
|
28
29
|
private readonly openerService;
|
|
30
|
+
private readonly environmentService;
|
|
29
31
|
readonly _serviceBrand: undefined;
|
|
30
|
-
constructor(extensionService: IExtensionService, productService: IProductService, issueFormService: IIssueFormService, themeService: IThemeService, experimentService: IWorkbenchAssignmentService, workspaceTrustManagementService: IWorkspaceTrustManagementService, integrityService: IIntegrityService, extensionManagementService: IExtensionManagementService, extensionEnablementService: IWorkbenchExtensionEnablementService, authenticationService: IAuthenticationService, configurationService: IConfigurationService, openerService: IOpenerService);
|
|
32
|
+
constructor(extensionService: IExtensionService, productService: IProductService, issueFormService: IIssueFormService, themeService: IThemeService, experimentService: IWorkbenchAssignmentService, workspaceTrustManagementService: IWorkspaceTrustManagementService, integrityService: IIntegrityService, extensionManagementService: IExtensionManagementService, extensionEnablementService: IWorkbenchExtensionEnablementService, authenticationService: IAuthenticationService, configurationService: IConfigurationService, openerService: IOpenerService, environmentService: IWorkbenchEnvironmentService);
|
|
31
33
|
openReporter(options: Partial<IssueReporterData>): Promise<void>;
|
|
32
34
|
private getExtensionGitHubUrl;
|
|
33
35
|
private getIssueUriFromStaticContent;
|
|
@@ -28,6 +28,7 @@ import { IIssueFormService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
28
28
|
import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
|
|
29
29
|
import { IAuthenticationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/authentication.service';
|
|
30
30
|
import { IWorkbenchExtensionEnablementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
|
|
31
|
+
import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
31
32
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
32
33
|
import { IIntegrityService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/integrity/common/integrity.service';
|
|
33
34
|
|
|
@@ -44,7 +45,8 @@ let BrowserIssueService = class BrowserIssueService {
|
|
|
44
45
|
extensionEnablementService,
|
|
45
46
|
authenticationService,
|
|
46
47
|
configurationService,
|
|
47
|
-
openerService
|
|
48
|
+
openerService,
|
|
49
|
+
environmentService
|
|
48
50
|
) {
|
|
49
51
|
this.extensionService = extensionService;
|
|
50
52
|
this.productService = productService;
|
|
@@ -58,6 +60,7 @@ let BrowserIssueService = class BrowserIssueService {
|
|
|
58
60
|
this.authenticationService = authenticationService;
|
|
59
61
|
this.configurationService = configurationService;
|
|
60
62
|
this.openerService = openerService;
|
|
63
|
+
this.environmentService = environmentService;
|
|
61
64
|
}
|
|
62
65
|
async openReporter(options) {
|
|
63
66
|
if (!this.configurationService.getValue("issueReporter.experimental.webReporter")) {
|
|
@@ -144,6 +147,7 @@ let BrowserIssueService = class BrowserIssueService {
|
|
|
144
147
|
experiments: experiments?.join("\n"),
|
|
145
148
|
restrictedMode: !this.workspaceTrustManagementService.isWorkspaceTrusted(),
|
|
146
149
|
isUnsupported,
|
|
150
|
+
isSessionsWindow: this.environmentService.isSessionsWindow,
|
|
147
151
|
githubAccessToken
|
|
148
152
|
}, options);
|
|
149
153
|
return this.issueFormService.openReporter(issueReporterData);
|
|
@@ -176,7 +180,7 @@ ${extension?.version ? `\nExtension version: ${extension.version}` : ""}
|
|
|
176
180
|
return `${baseUri}?body=${encodeURIComponent(issueDescription)}&labels=web`;
|
|
177
181
|
}
|
|
178
182
|
};
|
|
179
|
-
BrowserIssueService = ( __decorate([( __param(0, IExtensionService)), ( __param(1, IProductService)), ( __param(2, IIssueFormService)), ( __param(3, IThemeService)), ( __param(4, IWorkbenchAssignmentService)), ( __param(5, IWorkspaceTrustManagementService)), ( __param(6, IIntegrityService)), ( __param(7, IExtensionManagementService)), ( __param(8, IWorkbenchExtensionEnablementService)), ( __param(9, IAuthenticationService)), ( __param(10, IConfigurationService)), ( __param(11, IOpenerService))], BrowserIssueService));
|
|
183
|
+
BrowserIssueService = ( __decorate([( __param(0, IExtensionService)), ( __param(1, IProductService)), ( __param(2, IIssueFormService)), ( __param(3, IThemeService)), ( __param(4, IWorkbenchAssignmentService)), ( __param(5, IWorkspaceTrustManagementService)), ( __param(6, IIntegrityService)), ( __param(7, IExtensionManagementService)), ( __param(8, IWorkbenchExtensionEnablementService)), ( __param(9, IAuthenticationService)), ( __param(10, IConfigurationService)), ( __param(11, IOpenerService)), ( __param(12, IWorkbenchEnvironmentService))], BrowserIssueService));
|
|
180
184
|
function getIssueReporterStyles(theme) {
|
|
181
185
|
return {
|
|
182
186
|
backgroundColor: getColor(theme, SIDE_BAR_BACKGROUND),
|
|
@@ -102,13 +102,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
102
102
|
throw ( new Error("invalid state"));
|
|
103
103
|
}
|
|
104
104
|
const res = await this.dialogService.confirm({
|
|
105
|
-
message: ( localize(
|
|
105
|
+
message: ( localize(10558, "Troubleshoot Issue")),
|
|
106
106
|
detail: ( localize(
|
|
107
|
-
|
|
107
|
+
10559,
|
|
108
108
|
"Issue troubleshooting is a process to help you identify the cause for an issue. The cause for an issue can be a misconfiguration, due to an extension, or be {0} itself.\n\nDuring the process the window reloads repeatedly. Each time you must confirm if you are still seeing the issue.",
|
|
109
109
|
this.productService.nameLong
|
|
110
110
|
)),
|
|
111
|
-
primaryButton: ( localize(
|
|
111
|
+
primaryButton: ( localize(10560, "&&Troubleshoot Issue")),
|
|
112
112
|
custom: true
|
|
113
113
|
});
|
|
114
114
|
if (!res.confirmed) {
|
|
@@ -152,7 +152,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
152
152
|
return;
|
|
153
153
|
}
|
|
154
154
|
const result = await this.askToReproduceIssue(( localize(
|
|
155
|
-
|
|
155
|
+
10561,
|
|
156
156
|
"Issue troubleshooting is active and has temporarily disabled all installed extensions. Check if you can still reproduce the problem and proceed by selecting from these options."
|
|
157
157
|
)));
|
|
158
158
|
if (result === "good") {
|
|
@@ -170,7 +170,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
170
170
|
await this.userDataProfileManagementService.createAndEnterTransientProfile();
|
|
171
171
|
this.updateState(this.state);
|
|
172
172
|
const result = await this.askToReproduceIssue(( localize(
|
|
173
|
-
|
|
173
|
+
10562,
|
|
174
174
|
"Issue troubleshooting is active and has temporarily reset your configurations to defaults. Check if you can still reproduce the problem and proceed by selecting from these options."
|
|
175
175
|
)));
|
|
176
176
|
if (result === "stop") {
|
|
@@ -178,13 +178,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
178
178
|
}
|
|
179
179
|
if (result === "good") {
|
|
180
180
|
await this.askToReportIssue(( localize(
|
|
181
|
-
|
|
181
|
+
10563,
|
|
182
182
|
"Issue troubleshooting has identified that the issue is caused by your configurations. Please report the issue by exporting your configurations using \"Export Profile\" command and share the file in the issue report."
|
|
183
183
|
)));
|
|
184
184
|
}
|
|
185
185
|
if (result === "bad") {
|
|
186
186
|
await this.askToReportIssue(( localize(
|
|
187
|
-
|
|
187
|
+
10564,
|
|
188
188
|
"Issue troubleshooting has identified that the issue is with {0}.",
|
|
189
189
|
this.productService.nameLong
|
|
190
190
|
)));
|
|
@@ -199,15 +199,15 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
199
199
|
askToReproduceIssue(message) {
|
|
200
200
|
return (new Promise((c, e) => {
|
|
201
201
|
const goodPrompt = {
|
|
202
|
-
label: ( localize(
|
|
202
|
+
label: ( localize(10565, "I Can't Reproduce")),
|
|
203
203
|
run: () => c("good")
|
|
204
204
|
};
|
|
205
205
|
const badPrompt = {
|
|
206
|
-
label: ( localize(
|
|
206
|
+
label: ( localize(10566, "I Can Reproduce")),
|
|
207
207
|
run: () => c("bad")
|
|
208
208
|
};
|
|
209
209
|
const stop = {
|
|
210
|
-
label: ( localize(
|
|
210
|
+
label: ( localize(10567, "Stop")),
|
|
211
211
|
run: () => c("stop")
|
|
212
212
|
};
|
|
213
213
|
this.notificationHandle = this.notificationService.prompt(Severity.Info, message, [goodPrompt, badPrompt, stop], {
|
|
@@ -223,9 +223,9 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
223
223
|
if (res === "good") {
|
|
224
224
|
await this.dialogService.prompt({
|
|
225
225
|
type: Severity.Info,
|
|
226
|
-
message: ( localize(
|
|
226
|
+
message: ( localize(10558, "Troubleshoot Issue")),
|
|
227
227
|
detail: ( localize(
|
|
228
|
-
|
|
228
|
+
10568,
|
|
229
229
|
"This likely means that the issue has been addressed already and will be available in an upcoming release. You can safely use {0} insiders until the new stable version is available.",
|
|
230
230
|
this.productService.nameLong
|
|
231
231
|
)),
|
|
@@ -248,11 +248,11 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
248
248
|
async askToReproduceIssueWithInsiders() {
|
|
249
249
|
const confirmRes = await this.dialogService.confirm({
|
|
250
250
|
type: "info",
|
|
251
|
-
message: ( localize(
|
|
252
|
-
primaryButton: ( localize(
|
|
253
|
-
cancelButton: ( localize(
|
|
251
|
+
message: ( localize(10558, "Troubleshoot Issue")),
|
|
252
|
+
primaryButton: ( localize(10569, "Download {0} Insiders", this.productService.nameLong)),
|
|
253
|
+
cancelButton: ( localize(10570, "Report Issue Anyway")),
|
|
254
254
|
detail: ( localize(
|
|
255
|
-
|
|
255
|
+
10571,
|
|
256
256
|
"Please try to download and reproduce the issue in {0} insiders.",
|
|
257
257
|
this.productService.nameLong
|
|
258
258
|
)),
|
|
@@ -269,20 +269,20 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
269
269
|
}
|
|
270
270
|
const res = await this.dialogService.prompt({
|
|
271
271
|
type: "info",
|
|
272
|
-
message: ( localize(
|
|
272
|
+
message: ( localize(10558, "Troubleshoot Issue")),
|
|
273
273
|
buttons: [{
|
|
274
|
-
label: ( localize(
|
|
274
|
+
label: ( localize(10572, "I can't reproduce")),
|
|
275
275
|
run: () => "good"
|
|
276
276
|
}, {
|
|
277
|
-
label: ( localize(
|
|
277
|
+
label: ( localize(10573, "I can reproduce")),
|
|
278
278
|
run: () => "bad"
|
|
279
279
|
}],
|
|
280
280
|
cancelButton: {
|
|
281
|
-
label: ( localize(
|
|
281
|
+
label: ( localize(10574, "Stop")),
|
|
282
282
|
run: () => "stop"
|
|
283
283
|
},
|
|
284
284
|
detail: ( localize(
|
|
285
|
-
|
|
285
|
+
10575,
|
|
286
286
|
"Please try to reproduce the issue in {0} insiders and confirm if the issue exists there.",
|
|
287
287
|
this.productService.nameLong
|
|
288
288
|
)),
|
|
@@ -348,7 +348,7 @@ registerAction2(class TroubleshootIssueAction extends Action2 {
|
|
|
348
348
|
constructor() {
|
|
349
349
|
super({
|
|
350
350
|
id: "workbench.action.troubleshootIssue.start",
|
|
351
|
-
title: ( localize2(
|
|
351
|
+
title: ( localize2(10576, "Troubleshoot Issue...")),
|
|
352
352
|
category: Categories.Help,
|
|
353
353
|
f1: true,
|
|
354
354
|
precondition: ( ContextKeyExpr.and(( IssueTroubleshootUi.ctxIsTroubleshootActive.negate()), ( RemoteNameContext.isEqualTo("")), ( IsWebContext.negate())))
|
|
@@ -362,7 +362,7 @@ registerAction2(class extends Action2 {
|
|
|
362
362
|
constructor() {
|
|
363
363
|
super({
|
|
364
364
|
id: "workbench.action.troubleshootIssue.stop",
|
|
365
|
-
title: ( localize2(
|
|
365
|
+
title: ( localize2(10577, "Stop Troubleshoot Issue")),
|
|
366
366
|
category: Categories.Help,
|
|
367
367
|
f1: true,
|
|
368
368
|
precondition: IssueTroubleshootUi.ctxIsTroubleshootActive
|
|
@@ -570,6 +570,13 @@ body.issue-reporter-body {
|
|
|
570
570
|
align-self: flex-end;
|
|
571
571
|
}
|
|
572
572
|
|
|
573
|
+
.issue-reporter-body .public-elements .monaco-text-button .codicon-loading {
|
|
574
|
+
margin-right: 4px;
|
|
575
|
+
vertical-align: text-bottom;
|
|
576
|
+
line-height: inherit;
|
|
577
|
+
font-size: inherit;
|
|
578
|
+
}
|
|
579
|
+
|
|
573
580
|
.issue-reporter-body .public-elements #show-repo-name {
|
|
574
581
|
align-self: flex-end;
|
|
575
582
|
font-size: 12px;
|
|
@@ -81,7 +81,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
|
|
|
81
81
|
}));
|
|
82
82
|
const reportIssue = {
|
|
83
83
|
id: OpenIssueReporterActionId,
|
|
84
|
-
title: ( localize2(
|
|
84
|
+
title: ( localize2(10578, "Report Issue...")),
|
|
85
85
|
category: Categories.Help
|
|
86
86
|
};
|
|
87
87
|
this._register(MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
|
|
@@ -91,7 +91,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
|
|
|
91
91
|
group: "3_feedback",
|
|
92
92
|
command: {
|
|
93
93
|
id: OpenIssueReporterActionId,
|
|
94
|
-
title: ( localize(
|
|
94
|
+
title: ( localize(10579, "Report &&Issue"))
|
|
95
95
|
},
|
|
96
96
|
order: 3
|
|
97
97
|
}));
|