@codingame/monaco-vscode-issue-service-override 28.4.0 → 29.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.js +37 -37
- 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/issueReporterPage.js +32 -32
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterService.js +1 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueTroubleshoot.js +23 -23
- package/vscode/src/vs/workbench/contrib/issue/common/issue.contribution.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-issue-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "29.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": "29.0.0"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -116,17 +116,17 @@ 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(9980, "Create on GitHub")), undefined, true, async () => {
|
|
120
120
|
this.delayedSubmit.trigger(async () => {
|
|
121
121
|
this.createIssue(true);
|
|
122
122
|
});
|
|
123
123
|
})));
|
|
124
|
-
this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(
|
|
124
|
+
this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(9981, "Preview on GitHub")), undefined, true, async () => {
|
|
125
125
|
this.delayedSubmit.trigger(async () => {
|
|
126
126
|
this.createIssue(false);
|
|
127
127
|
});
|
|
128
128
|
})));
|
|
129
|
-
this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(
|
|
129
|
+
this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(9982, "Create Internally")), undefined, true, async () => {
|
|
130
130
|
this.delayedSubmit.trigger(async () => {
|
|
131
131
|
this.createIssue(true, true);
|
|
132
132
|
});
|
|
@@ -226,7 +226,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
226
226
|
filingNote.classList.add("internal-preview-message");
|
|
227
227
|
container.appendChild(filingNote);
|
|
228
228
|
}
|
|
229
|
-
filingNote.textContent = escape(( localize(
|
|
229
|
+
filingNote.textContent = escape(( localize(9983, "If your copilot debug logs contain private information:")));
|
|
230
230
|
}
|
|
231
231
|
updatePublicGithubButton(container) {
|
|
232
232
|
const issueReporterElement = this.getElementById("issue-reporter");
|
|
@@ -238,7 +238,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
238
238
|
}
|
|
239
239
|
if (!this.acknowledged && this.needsUpdate) {
|
|
240
240
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
241
|
-
this.publicGithubButton.label = ( localize(
|
|
241
|
+
this.publicGithubButton.label = ( localize(9984, "Confirm Version Acknowledgement"));
|
|
242
242
|
this.publicGithubButton.enabled = false;
|
|
243
243
|
} else if (this.data.githubAccessToken && this.isPreviewEnabled()) {
|
|
244
244
|
this.publicGithubButton = this._register(( new ButtonWithDropdown(container, {
|
|
@@ -250,21 +250,21 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
250
250
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
251
251
|
this.createAction.run();
|
|
252
252
|
}));
|
|
253
|
-
this.publicGithubButton.label = ( localize(
|
|
253
|
+
this.publicGithubButton.label = ( localize(9985, "Create on GitHub"));
|
|
254
254
|
this.publicGithubButton.enabled = true;
|
|
255
255
|
} else if (this.data.githubAccessToken && !this.isPreviewEnabled()) {
|
|
256
256
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
257
257
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
258
258
|
this.createAction.run();
|
|
259
259
|
}));
|
|
260
|
-
this.publicGithubButton.label = ( localize(
|
|
260
|
+
this.publicGithubButton.label = ( localize(9985, "Create on GitHub"));
|
|
261
261
|
this.publicGithubButton.enabled = true;
|
|
262
262
|
} else {
|
|
263
263
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
264
264
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
265
265
|
this.previewAction.run();
|
|
266
266
|
}));
|
|
267
|
-
this.publicGithubButton.label = ( localize(
|
|
267
|
+
this.publicGithubButton.label = ( localize(9986, "Preview on GitHub"));
|
|
268
268
|
this.publicGithubButton.enabled = true;
|
|
269
269
|
}
|
|
270
270
|
const repoLink = this.getElementById("show-repo-name");
|
|
@@ -317,7 +317,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
317
317
|
}));
|
|
318
318
|
this.internalGithubButton.element.id = "internal-create-btn";
|
|
319
319
|
this.internalGithubButton.element.classList.add("internal-create-subtle");
|
|
320
|
-
this.internalGithubButton.label = ( localize(
|
|
320
|
+
this.internalGithubButton.label = ( localize(9987, "Create Internally"));
|
|
321
321
|
this.internalGithubButton.enabled = true;
|
|
322
322
|
this.internalGithubButton.setTitle(this.data.privateUri.path.slice(1));
|
|
323
323
|
}
|
|
@@ -398,7 +398,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
398
398
|
const {
|
|
399
399
|
selectedExtension
|
|
400
400
|
} = this.issueReporterModel.getData();
|
|
401
|
-
reset(extensionsSelector, this.makeOption("", ( localize(
|
|
401
|
+
reset(extensionsSelector, this.makeOption("", ( localize(9988, "Select extension")), true), ...( extensionOptions.map(extension => makeOption(extension, selectedExtension))));
|
|
402
402
|
if (!selectedExtension) {
|
|
403
403
|
extensionsSelector.selectedIndex = 0;
|
|
404
404
|
}
|
|
@@ -502,10 +502,10 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
502
502
|
const info = containingElement && containingElement.lastElementChild;
|
|
503
503
|
if (info && info.classList.contains("hidden")) {
|
|
504
504
|
show(info);
|
|
505
|
-
label.textContent = ( localize(
|
|
505
|
+
label.textContent = ( localize(9989, "hide"));
|
|
506
506
|
} else {
|
|
507
507
|
hide(info);
|
|
508
|
-
label.textContent = ( localize(
|
|
508
|
+
label.textContent = ( localize(9990, "show"));
|
|
509
509
|
}
|
|
510
510
|
}
|
|
511
511
|
});
|
|
@@ -526,13 +526,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
526
526
|
}
|
|
527
527
|
const descriptionTextArea = this.getElementById("issue-title");
|
|
528
528
|
if (value === IssueSource.VSCode) {
|
|
529
|
-
descriptionTextArea.placeholder = ( localize(
|
|
529
|
+
descriptionTextArea.placeholder = ( localize(9991, "E.g Workbench is missing problems panel"));
|
|
530
530
|
} else if (value === IssueSource.Extension) {
|
|
531
|
-
descriptionTextArea.placeholder = ( localize(
|
|
531
|
+
descriptionTextArea.placeholder = ( localize(9992, "E.g. Missing alt text on extension readme image"));
|
|
532
532
|
} else if (value === IssueSource.Marketplace) {
|
|
533
|
-
descriptionTextArea.placeholder = ( localize(
|
|
533
|
+
descriptionTextArea.placeholder = ( localize(9993, "E.g Cannot disable installed extension"));
|
|
534
534
|
} else {
|
|
535
|
-
descriptionTextArea.placeholder = ( localize(
|
|
535
|
+
descriptionTextArea.placeholder = ( localize(9994, "Please enter a title"));
|
|
536
536
|
}
|
|
537
537
|
let fileOnExtension, fileOnMarketplace, fileOnProduct = false;
|
|
538
538
|
if (value === IssueSource.Extension) {
|
|
@@ -769,7 +769,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
769
769
|
if (results.length) {
|
|
770
770
|
const issues = $("div.issues-container");
|
|
771
771
|
const issuesText = $("div.list-title");
|
|
772
|
-
issuesText.textContent = ( localize(
|
|
772
|
+
issuesText.textContent = ( localize(9995, "Similar issues"));
|
|
773
773
|
this.numberOfSearchResultsDisplayed = results.length < 5 ? results.length : 5;
|
|
774
774
|
for (let i = 0; i < this.numberOfSearchResultsDisplayed; i++) {
|
|
775
775
|
const issue = results[i];
|
|
@@ -789,8 +789,8 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
789
789
|
renderIcon(issue.state === "open" ? Codicon.issueOpened : Codicon.issueClosed)
|
|
790
790
|
);
|
|
791
791
|
const issueStateLabel = $("span.issue-state.label");
|
|
792
|
-
issueStateLabel.textContent = issue.state === "open" ? ( localize(
|
|
793
|
-
issueState.title = issue.state === "open" ? ( localize(
|
|
792
|
+
issueStateLabel.textContent = issue.state === "open" ? ( localize(9996, "Open")) : ( localize(9997, "Closed"));
|
|
793
|
+
issueState.title = issue.state === "open" ? ( localize(9996, "Open")) : ( localize(9997, "Closed"));
|
|
794
794
|
issueState.appendChild(issueIcon);
|
|
795
795
|
issueState.appendChild(issueStateLabel);
|
|
796
796
|
item = $("div.issue", undefined, issueState, link);
|
|
@@ -811,7 +811,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
811
811
|
const {
|
|
812
812
|
issueType
|
|
813
813
|
} = this.issueReporterModel.getData();
|
|
814
|
-
reset(typeSelect, makeOption(IssueType.Bug, ( localize(
|
|
814
|
+
reset(typeSelect, makeOption(IssueType.Bug, ( localize(9998, "Bug Report"))), makeOption(IssueType.FeatureRequest, ( localize(9999, "Feature Request"))), makeOption(IssueType.PerformanceIssue, ( localize(10000, "Performance Issue (freeze, slow, crash)"))));
|
|
815
815
|
typeSelect.value = ( issueType.toString());
|
|
816
816
|
this.setSourceOptions();
|
|
817
817
|
}
|
|
@@ -844,14 +844,14 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
844
844
|
}
|
|
845
845
|
}
|
|
846
846
|
sourceSelect.innerText = "";
|
|
847
|
-
sourceSelect.append(this.makeOption("", ( localize(
|
|
848
|
-
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(
|
|
849
|
-
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(
|
|
847
|
+
sourceSelect.append(this.makeOption("", ( localize(10001, "Select source")), true));
|
|
848
|
+
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(10002, "Visual Studio Code")), false));
|
|
849
|
+
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(10003, "A VS Code extension")), false));
|
|
850
850
|
if (this.product.reportMarketplaceIssueUrl) {
|
|
851
|
-
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(
|
|
851
|
+
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(10004, "Extensions Marketplace")), false));
|
|
852
852
|
}
|
|
853
853
|
if (issueType !== IssueType.FeatureRequest) {
|
|
854
|
-
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(
|
|
854
|
+
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(10005, "Don't know")), false));
|
|
855
855
|
}
|
|
856
856
|
if (selected !== -1 && selected < sourceSelect.options.length) {
|
|
857
857
|
sourceSelect.selectedIndex = selected;
|
|
@@ -907,7 +907,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
907
907
|
const fileName = `extensionData_${formattedDate}_${formattedTime}.md`;
|
|
908
908
|
const handleLinkClick = async () => {
|
|
909
909
|
const downloadPath = await this.fileDialogService.showSaveDialog({
|
|
910
|
-
title: ( localize(
|
|
910
|
+
title: ( localize(10006, "Save Extension Data")),
|
|
911
911
|
availableFileSystems: [Schemas.file],
|
|
912
912
|
defaultUri: joinPath(await this.fileDialogService.defaultFilePath(Schemas.file), fileName)
|
|
913
913
|
});
|
|
@@ -923,13 +923,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
923
923
|
if (selectedExtension && this.nonGitHubIssueUrl) {
|
|
924
924
|
hide(titleTextArea);
|
|
925
925
|
hide(descriptionTextArea);
|
|
926
|
-
reset(descriptionTitle, ( localize(
|
|
926
|
+
reset(descriptionTitle, ( localize(10007, "This extension handles issues outside of VS Code")));
|
|
927
927
|
reset(descriptionSubtitle, ( localize(
|
|
928
|
-
|
|
928
|
+
10008,
|
|
929
929
|
"The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.",
|
|
930
930
|
selectedExtension.displayName
|
|
931
931
|
)));
|
|
932
|
-
this.publicGithubButton.label = ( localize(
|
|
932
|
+
this.publicGithubButton.label = ( localize(10009, "Open External Issue Reporter"));
|
|
933
933
|
return;
|
|
934
934
|
}
|
|
935
935
|
if (fileOnExtension && selectedExtension?.data) {
|
|
@@ -956,9 +956,9 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
956
956
|
show(extensionsBlock);
|
|
957
957
|
}
|
|
958
958
|
}
|
|
959
|
-
reset(descriptionTitle, ( localize(
|
|
959
|
+
reset(descriptionTitle, ( localize(10010, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
|
|
960
960
|
reset(descriptionSubtitle, ( localize(
|
|
961
|
-
|
|
961
|
+
10011,
|
|
962
962
|
"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
963
|
)));
|
|
964
964
|
} else if (issueType === IssueType.PerformanceIssue) {
|
|
@@ -974,15 +974,15 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
974
974
|
} else if (!fileOnMarketplace) {
|
|
975
975
|
show(extensionsBlock);
|
|
976
976
|
}
|
|
977
|
-
reset(descriptionTitle, ( localize(
|
|
977
|
+
reset(descriptionTitle, ( localize(10010, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
|
|
978
978
|
reset(descriptionSubtitle, ( localize(
|
|
979
|
-
|
|
979
|
+
10012,
|
|
980
980
|
"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
981
|
)));
|
|
982
982
|
} else if (issueType === IssueType.FeatureRequest) {
|
|
983
|
-
reset(descriptionTitle, ( localize(
|
|
983
|
+
reset(descriptionTitle, ( localize(10013, "Description")) + " ", $("span.required-input", undefined, "*"));
|
|
984
984
|
reset(descriptionSubtitle, ( localize(
|
|
985
|
-
|
|
985
|
+
10014,
|
|
986
986
|
"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
987
|
)));
|
|
988
988
|
}
|
|
@@ -1113,7 +1113,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1113
1113
|
throw ( new CancellationError());
|
|
1114
1114
|
}
|
|
1115
1115
|
return baseUrl + `&body=${encodeURIComponent(( localize(
|
|
1116
|
-
|
|
1116
|
+
10015,
|
|
1117
1117
|
"We have written the needed data into your clipboard because it was too large to send. Please paste."
|
|
1118
1118
|
)))}`;
|
|
1119
1119
|
}
|
|
@@ -1302,7 +1302,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1302
1302
|
const target = this.window.document.querySelector(".block-extensions .block-info");
|
|
1303
1303
|
if (target) {
|
|
1304
1304
|
if (this.disableExtensions) {
|
|
1305
|
-
reset(target, ( localize(
|
|
1305
|
+
reset(target, ( localize(10016, "Extensions are disabled")));
|
|
1306
1306
|
return;
|
|
1307
1307
|
}
|
|
1308
1308
|
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(10017, "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
|
+
10018,
|
|
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(10019, "&&Yes")),
|
|
165
165
|
run: () => {
|
|
166
166
|
this.closeReporter();
|
|
167
167
|
this.issueReporterWindow = null;
|
|
168
168
|
}
|
|
169
169
|
}, {
|
|
170
|
-
label: ( localize(
|
|
170
|
+
label: ( localize(10020, "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
|
+
10021,
|
|
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(10022, "&&OK")),
|
|
185
185
|
run: () => {
|
|
186
186
|
result = true;
|
|
187
187
|
}
|
|
188
188
|
}, {
|
|
189
|
-
label: ( localize(
|
|
189
|
+
label: ( localize(10020, "Cancel")),
|
|
190
190
|
run: () => {
|
|
191
191
|
result = false;
|
|
192
192
|
}
|
|
@@ -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(10023, "Include my system information")));
|
|
6
|
+
const sendProcessInfoLabel = escape(( localize(10024, "Include my currently running processes")));
|
|
7
|
+
const sendWorkspaceInfoLabel = escape(( localize(10025, "Include my workspace metadata")));
|
|
8
|
+
const sendExtensionsLabel = escape(( localize(10026, "Include my enabled extensions")));
|
|
9
|
+
const sendExperimentsLabel = escape(( localize(10027, "Include A/B experiment info")));
|
|
10
|
+
const sendExtensionData = escape(( localize(10028, "Include additional extension info")));
|
|
11
11
|
const acknowledgementsLabel = escape(( localize(
|
|
12
|
-
|
|
12
|
+
10029,
|
|
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
|
+
10030,
|
|
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(10031, "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(10032, "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(10033, "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(10034, "An issue source is required.")))}</div>
|
|
44
44
|
<div id="problem-source-help-text" class="instructions hidden">${escape(( localize(
|
|
45
|
-
|
|
45
|
+
10035,
|
|
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(10036, "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(10037, "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
|
+
10038,
|
|
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
|
+
10039,
|
|
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(10040, "Title")))} <span class="required-input">*</span></label>
|
|
76
|
+
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(10041, "Please enter a title.")))}" required>
|
|
77
|
+
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10042, "A title is required.")))}</div>
|
|
78
|
+
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(10043, "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(10044, "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(10045, "A description is required.")))}</div>
|
|
97
|
+
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(10046, "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(10047, "show")))}</a><span class="ext-parens" hidden>)</span>
|
|
107
|
+
<a id="extension-data-download">${escape(( localize(10048, "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(10049, "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(10047, "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(10047, "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(10047, "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(10047, "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(10047, "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(10050, "Please enter a title"));
|
|
64
64
|
}
|
|
65
65
|
this.updateButtonStates();
|
|
66
66
|
this.setSourceOptions();
|
|
@@ -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(10051, "Troubleshoot Issue")),
|
|
106
106
|
detail: ( localize(
|
|
107
|
-
|
|
107
|
+
10052,
|
|
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(10053, "&&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
|
+
10054,
|
|
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
|
+
10055,
|
|
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
|
+
10056,
|
|
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
|
+
10057,
|
|
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(10058, "I Can't Reproduce")),
|
|
203
203
|
run: () => c("good")
|
|
204
204
|
};
|
|
205
205
|
const badPrompt = {
|
|
206
|
-
label: ( localize(
|
|
206
|
+
label: ( localize(10059, "I Can Reproduce")),
|
|
207
207
|
run: () => c("bad")
|
|
208
208
|
};
|
|
209
209
|
const stop = {
|
|
210
|
-
label: ( localize(
|
|
210
|
+
label: ( localize(10060, "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(10051, "Troubleshoot Issue")),
|
|
227
227
|
detail: ( localize(
|
|
228
|
-
|
|
228
|
+
10061,
|
|
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(10051, "Troubleshoot Issue")),
|
|
252
|
+
primaryButton: ( localize(10062, "Download {0} Insiders", this.productService.nameLong)),
|
|
253
|
+
cancelButton: ( localize(10063, "Report Issue Anyway")),
|
|
254
254
|
detail: ( localize(
|
|
255
|
-
|
|
255
|
+
10064,
|
|
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(10051, "Troubleshoot Issue")),
|
|
273
273
|
buttons: [{
|
|
274
|
-
label: ( localize(
|
|
274
|
+
label: ( localize(10065, "I can't reproduce")),
|
|
275
275
|
run: () => "good"
|
|
276
276
|
}, {
|
|
277
|
-
label: ( localize(
|
|
277
|
+
label: ( localize(10066, "I can reproduce")),
|
|
278
278
|
run: () => "bad"
|
|
279
279
|
}],
|
|
280
280
|
cancelButton: {
|
|
281
|
-
label: ( localize(
|
|
281
|
+
label: ( localize(10067, "Stop")),
|
|
282
282
|
run: () => "stop"
|
|
283
283
|
},
|
|
284
284
|
detail: ( localize(
|
|
285
|
-
|
|
285
|
+
10068,
|
|
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(10069, "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(10070, "Stop Troubleshoot Issue")),
|
|
366
366
|
category: Categories.Help,
|
|
367
367
|
f1: true,
|
|
368
368
|
precondition: IssueTroubleshootUi.ctxIsTroubleshootActive
|
|
@@ -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(10071, "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(10072, "Report &&Issue"))
|
|
95
95
|
},
|
|
96
96
|
order: 3
|
|
97
97
|
}));
|