@codingame/monaco-vscode-issue-service-override 15.0.0 → 15.0.1
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 +3 -3
- package/vscode/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.js +33 -33
- 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 +31 -31
- 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": "15.0.
|
|
3
|
+
"version": "15.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - issue service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common": "15.0.
|
|
19
|
-
"@codingame/monaco-vscode-api": "15.0.
|
|
18
|
+
"@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common": "15.0.1",
|
|
19
|
+
"@codingame/monaco-vscode-api": "15.0.1"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -245,7 +245,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
245
245
|
const extensionsSelector = this.getElementById('extension-selector');
|
|
246
246
|
if (extensionsSelector) {
|
|
247
247
|
const { selectedExtension } = this.issueReporterModel.getData();
|
|
248
|
-
reset(extensionsSelector, this.makeOption('', ( localize(
|
|
248
|
+
reset(extensionsSelector, this.makeOption('', ( localize(7102, "Select extension")), true), ...( extensionOptions.map(extension => makeOption(extension, selectedExtension))));
|
|
249
249
|
if (!selectedExtension) {
|
|
250
250
|
extensionsSelector.selectedIndex = 0;
|
|
251
251
|
}
|
|
@@ -326,11 +326,11 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
326
326
|
const info = containingElement && containingElement.lastElementChild;
|
|
327
327
|
if (info && info.classList.contains('hidden')) {
|
|
328
328
|
show(info);
|
|
329
|
-
label.textContent = ( localize(
|
|
329
|
+
label.textContent = ( localize(7103, "hide"));
|
|
330
330
|
}
|
|
331
331
|
else {
|
|
332
332
|
hide(info);
|
|
333
|
-
label.textContent = ( localize(
|
|
333
|
+
label.textContent = ( localize(7104, "show"));
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
336
|
});
|
|
@@ -350,16 +350,16 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
350
350
|
}
|
|
351
351
|
const descriptionTextArea = this.getElementById('issue-title');
|
|
352
352
|
if (value === IssueSource.VSCode) {
|
|
353
|
-
descriptionTextArea.placeholder = ( localize(
|
|
353
|
+
descriptionTextArea.placeholder = ( localize(7105, "E.g Workbench is missing problems panel"));
|
|
354
354
|
}
|
|
355
355
|
else if (value === IssueSource.Extension) {
|
|
356
|
-
descriptionTextArea.placeholder = ( localize(
|
|
356
|
+
descriptionTextArea.placeholder = ( localize(7106, "E.g. Missing alt text on extension readme image"));
|
|
357
357
|
}
|
|
358
358
|
else if (value === IssueSource.Marketplace) {
|
|
359
|
-
descriptionTextArea.placeholder = ( localize(
|
|
359
|
+
descriptionTextArea.placeholder = ( localize(7107, "E.g Cannot disable installed extension"));
|
|
360
360
|
}
|
|
361
361
|
else {
|
|
362
|
-
descriptionTextArea.placeholder = ( localize(
|
|
362
|
+
descriptionTextArea.placeholder = ( localize(7108, "Please enter a title"));
|
|
363
363
|
}
|
|
364
364
|
let fileOnExtension, fileOnMarketplace = false;
|
|
365
365
|
if (value === IssueSource.Extension) {
|
|
@@ -464,16 +464,16 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
464
464
|
updatePreviewButtonState() {
|
|
465
465
|
if (this.isPreviewEnabled()) {
|
|
466
466
|
if (this.data.githubAccessToken) {
|
|
467
|
-
this.previewButton.label = ( localize(
|
|
467
|
+
this.previewButton.label = ( localize(7109, "Create on GitHub"));
|
|
468
468
|
}
|
|
469
469
|
else {
|
|
470
|
-
this.previewButton.label = ( localize(
|
|
470
|
+
this.previewButton.label = ( localize(7110, "Preview on GitHub"));
|
|
471
471
|
}
|
|
472
472
|
this.previewButton.enabled = true;
|
|
473
473
|
}
|
|
474
474
|
else {
|
|
475
475
|
this.previewButton.enabled = false;
|
|
476
|
-
this.previewButton.label = ( localize(
|
|
476
|
+
this.previewButton.label = ( localize(7111, "Loading data..."));
|
|
477
477
|
}
|
|
478
478
|
const issueRepoName = this.getElementById('show-repo-name');
|
|
479
479
|
const selectedExtension = this.issueReporterModel.getData().selectedExtension;
|
|
@@ -592,7 +592,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
592
592
|
}
|
|
593
593
|
else {
|
|
594
594
|
const message = $('div.list-title');
|
|
595
|
-
message.textContent = ( localize(
|
|
595
|
+
message.textContent = ( localize(7112, "GitHub query limit exceeded. Please wait."));
|
|
596
596
|
similarIssues.appendChild(message);
|
|
597
597
|
const resetTime = response.headers.get('X-RateLimit-Reset');
|
|
598
598
|
const timeToWait = resetTime ? parseInt(resetTime) - Math.floor(Date.now() / 1000) : 1;
|
|
@@ -642,7 +642,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
642
642
|
if (results.length) {
|
|
643
643
|
const issues = $('div.issues-container');
|
|
644
644
|
const issuesText = $('div.list-title');
|
|
645
|
-
issuesText.textContent = ( localize(
|
|
645
|
+
issuesText.textContent = ( localize(7113, "Similar issues"));
|
|
646
646
|
this.numberOfSearchResultsDisplayed = results.length < 5 ? results.length : 5;
|
|
647
647
|
for (let i = 0; i < this.numberOfSearchResultsDisplayed; i++) {
|
|
648
648
|
const issue = results[i];
|
|
@@ -658,8 +658,8 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
658
658
|
const issueIcon = $('span.issue-icon');
|
|
659
659
|
issueIcon.appendChild(renderIcon(issue.state === 'open' ? Codicon.issueOpened : Codicon.issueClosed));
|
|
660
660
|
const issueStateLabel = $('span.issue-state.label');
|
|
661
|
-
issueStateLabel.textContent = issue.state === 'open' ? ( localize(
|
|
662
|
-
issueState.title = issue.state === 'open' ? ( localize(
|
|
661
|
+
issueStateLabel.textContent = issue.state === 'open' ? ( localize(7114, "Open")) : ( localize(7115, "Closed"));
|
|
662
|
+
issueState.title = issue.state === 'open' ? ( localize(7114, "Open")) : ( localize(7115, "Closed"));
|
|
663
663
|
issueState.appendChild(issueIcon);
|
|
664
664
|
issueState.appendChild(issueStateLabel);
|
|
665
665
|
item = $('div.issue', undefined, issueState, link);
|
|
@@ -674,7 +674,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
674
674
|
}
|
|
675
675
|
else {
|
|
676
676
|
const message = $('div.list-title');
|
|
677
|
-
message.textContent = ( localize(
|
|
677
|
+
message.textContent = ( localize(7116, "No similar issues found"));
|
|
678
678
|
similarIssues.appendChild(message);
|
|
679
679
|
}
|
|
680
680
|
}
|
|
@@ -682,7 +682,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
682
682
|
const makeOption = (issueType, description) => $('option', { 'value': issueType.valueOf() }, escape(description));
|
|
683
683
|
const typeSelect = this.getElementById('issue-type');
|
|
684
684
|
const { issueType } = this.issueReporterModel.getData();
|
|
685
|
-
reset(typeSelect, makeOption(IssueType.Bug, ( localize(
|
|
685
|
+
reset(typeSelect, makeOption(IssueType.Bug, ( localize(7117, "Bug Report"))), makeOption(IssueType.FeatureRequest, ( localize(7118, "Feature Request"))), makeOption(IssueType.PerformanceIssue, ( localize(7119, "Performance Issue (freeze, slow, crash)"))));
|
|
686
686
|
typeSelect.value = ( issueType.toString());
|
|
687
687
|
this.setSourceOptions();
|
|
688
688
|
}
|
|
@@ -712,14 +712,14 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
712
712
|
}
|
|
713
713
|
}
|
|
714
714
|
sourceSelect.innerText = '';
|
|
715
|
-
sourceSelect.append(this.makeOption('', ( localize(
|
|
716
|
-
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(
|
|
717
|
-
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(
|
|
715
|
+
sourceSelect.append(this.makeOption('', ( localize(7120, "Select source")), true));
|
|
716
|
+
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(7121, "Visual Studio Code")), false));
|
|
717
|
+
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(7122, "A VS Code extension")), false));
|
|
718
718
|
if (this.product.reportMarketplaceIssueUrl) {
|
|
719
|
-
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(
|
|
719
|
+
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(7123, "Extensions Marketplace")), false));
|
|
720
720
|
}
|
|
721
721
|
if (issueType !== IssueType.FeatureRequest) {
|
|
722
|
-
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(
|
|
722
|
+
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(7124, "Don't know")), false));
|
|
723
723
|
}
|
|
724
724
|
if (selected !== -1 && selected < sourceSelect.options.length) {
|
|
725
725
|
sourceSelect.selectedIndex = selected;
|
|
@@ -771,7 +771,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
771
771
|
const fileName = `extensionData_${formattedDate}_${formattedTime}.md`;
|
|
772
772
|
const handleLinkClick = async () => {
|
|
773
773
|
const downloadPath = await this.fileDialogService.showSaveDialog({
|
|
774
|
-
title: ( localize(
|
|
774
|
+
title: ( localize(7125, "Save Extension Data")),
|
|
775
775
|
availableFileSystems: [Schemas.file],
|
|
776
776
|
defaultUri: joinPath(await this.fileDialogService.defaultFilePath(Schemas.file), fileName),
|
|
777
777
|
});
|
|
@@ -787,13 +787,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
787
787
|
if (selectedExtension && this.nonGitHubIssueUrl) {
|
|
788
788
|
hide(titleTextArea);
|
|
789
789
|
hide(descriptionTextArea);
|
|
790
|
-
reset(descriptionTitle, ( localize(
|
|
790
|
+
reset(descriptionTitle, ( localize(7126, "This extension handles issues outside of VS Code")));
|
|
791
791
|
reset(descriptionSubtitle, ( localize(
|
|
792
|
-
|
|
792
|
+
7127,
|
|
793
793
|
"The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.",
|
|
794
794
|
selectedExtension.displayName
|
|
795
795
|
)));
|
|
796
|
-
this.previewButton.label = ( localize(
|
|
796
|
+
this.previewButton.label = ( localize(7128, "Open External Issue Reporter"));
|
|
797
797
|
return;
|
|
798
798
|
}
|
|
799
799
|
if (fileOnExtension && selectedExtension?.data) {
|
|
@@ -820,9 +820,9 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
820
820
|
show(extensionsBlock);
|
|
821
821
|
}
|
|
822
822
|
}
|
|
823
|
-
reset(descriptionTitle, ( localize(
|
|
823
|
+
reset(descriptionTitle, ( localize(7129, "Steps to Reproduce")) + ' ', $('span.required-input', undefined, '*'));
|
|
824
824
|
reset(descriptionSubtitle, ( localize(
|
|
825
|
-
|
|
825
|
+
7130,
|
|
826
826
|
"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."
|
|
827
827
|
)));
|
|
828
828
|
}
|
|
@@ -840,16 +840,16 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
840
840
|
else if (!fileOnMarketplace) {
|
|
841
841
|
show(extensionsBlock);
|
|
842
842
|
}
|
|
843
|
-
reset(descriptionTitle, ( localize(
|
|
843
|
+
reset(descriptionTitle, ( localize(7129, "Steps to Reproduce")) + ' ', $('span.required-input', undefined, '*'));
|
|
844
844
|
reset(descriptionSubtitle, ( localize(
|
|
845
|
-
|
|
845
|
+
7131,
|
|
846
846
|
"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."
|
|
847
847
|
)));
|
|
848
848
|
}
|
|
849
849
|
else if (issueType === IssueType.FeatureRequest) {
|
|
850
|
-
reset(descriptionTitle, ( localize(
|
|
850
|
+
reset(descriptionTitle, ( localize(7132, "Description")) + ' ', $('span.required-input', undefined, '*'));
|
|
851
851
|
reset(descriptionSubtitle, ( localize(
|
|
852
|
-
|
|
852
|
+
7133,
|
|
853
853
|
"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."
|
|
854
854
|
)));
|
|
855
855
|
}
|
|
@@ -983,7 +983,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
983
983
|
throw ( new CancellationError());
|
|
984
984
|
}
|
|
985
985
|
return baseUrl + `&body=${encodeURIComponent(( localize(
|
|
986
|
-
|
|
986
|
+
7134,
|
|
987
987
|
"We have written the needed data into your clipboard because it was too large to send. Please paste."
|
|
988
988
|
)))}`;
|
|
989
989
|
}
|
|
@@ -1153,7 +1153,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1153
1153
|
const target = this.window.document.querySelector('.block-extensions .block-info');
|
|
1154
1154
|
if (target) {
|
|
1155
1155
|
if (this.disableExtensions) {
|
|
1156
|
-
reset(target, ( localize(
|
|
1156
|
+
reset(target, ( localize(7135, "Extensions are disabled")));
|
|
1157
1157
|
return;
|
|
1158
1158
|
}
|
|
1159
1159
|
const themeExclusionStr = numThemeExtensions ? `\n(${numThemeExtensions} theme extensions excluded)` : '';
|
|
@@ -35,5 +35,5 @@ WebIssueContribution = ( __decorate([
|
|
|
35
35
|
], WebIssueContribution));
|
|
36
36
|
( Registry.as(Extensions$1.Workbench)).registerWorkbenchContribution(WebIssueContribution, LifecyclePhase.Restored);
|
|
37
37
|
CommandsRegistry.registerCommand('_issues.getSystemStatus', (accessor) => {
|
|
38
|
-
return localize(
|
|
38
|
+
return localize(7136, "The --status argument is not yet supported in browsers.");
|
|
39
39
|
});
|
|
@@ -114,19 +114,19 @@ let IssueFormService = class IssueFormService {
|
|
|
114
114
|
await this.dialogService.prompt({
|
|
115
115
|
type: Severity.Warning,
|
|
116
116
|
message: ( localize(
|
|
117
|
-
|
|
117
|
+
7137,
|
|
118
118
|
"Your input will not be saved. Are you sure you want to close this window?"
|
|
119
119
|
)),
|
|
120
120
|
buttons: [
|
|
121
121
|
{
|
|
122
|
-
label: ( localize(
|
|
122
|
+
label: ( localize(7138, "&&Yes")),
|
|
123
123
|
run: () => {
|
|
124
124
|
this.closeReporter();
|
|
125
125
|
this.issueReporterWindow = null;
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
|
-
label: ( localize(
|
|
129
|
+
label: ( localize(7139, "Cancel")),
|
|
130
130
|
run: () => { }
|
|
131
131
|
}
|
|
132
132
|
]
|
|
@@ -137,16 +137,16 @@ let IssueFormService = class IssueFormService {
|
|
|
137
137
|
await this.dialogService.prompt({
|
|
138
138
|
type: Severity.Warning,
|
|
139
139
|
message: ( localize(
|
|
140
|
-
|
|
140
|
+
7140,
|
|
141
141
|
"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."
|
|
142
142
|
)),
|
|
143
143
|
buttons: [
|
|
144
144
|
{
|
|
145
|
-
label: ( localize(
|
|
145
|
+
label: ( localize(7141, "&&OK")),
|
|
146
146
|
run: () => { result = true; }
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
|
-
label: ( localize(
|
|
149
|
+
label: ( localize(7139, "Cancel")),
|
|
150
150
|
run: () => { result = false; }
|
|
151
151
|
}
|
|
152
152
|
]
|
|
@@ -2,56 +2,56 @@
|
|
|
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(7142, "Include my system information")));
|
|
6
|
+
const sendProcessInfoLabel = escape(( localize(7143, "Include my currently running processes")));
|
|
7
|
+
const sendWorkspaceInfoLabel = escape(( localize(7144, "Include my workspace metadata")));
|
|
8
|
+
const sendExtensionsLabel = escape(( localize(7145, "Include my enabled extensions")));
|
|
9
|
+
const sendExperimentsLabel = escape(( localize(7146, "Include A/B experiment info")));
|
|
10
|
+
const sendExtensionData = escape(( localize(7147, "Include additional extension info")));
|
|
11
11
|
const reviewGuidanceLabel = ( localize(
|
|
12
|
-
|
|
12
|
+
7148,
|
|
13
13
|
'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>.'
|
|
14
14
|
));
|
|
15
15
|
var BaseHtml = () => `
|
|
16
16
|
<div class="issue-reporter" id="issue-reporter">
|
|
17
|
-
<div id="english" class="input-group hidden">${escape(( localize(
|
|
17
|
+
<div id="english" class="input-group hidden">${escape(( localize(7149, "Please complete the form in English.")))}</div>
|
|
18
18
|
|
|
19
19
|
<div id="review-guidance-help-text" class="input-group">${reviewGuidanceLabel}</div>
|
|
20
20
|
|
|
21
21
|
<div class="section">
|
|
22
22
|
<div class="input-group">
|
|
23
|
-
<label class="inline-label" for="issue-type">${escape(( localize(
|
|
23
|
+
<label class="inline-label" for="issue-type">${escape(( localize(7150, "This is a")))}</label>
|
|
24
24
|
<select id="issue-type" class="inline-form-control">
|
|
25
25
|
<!-- To be dynamically filled -->
|
|
26
26
|
</select>
|
|
27
27
|
</div>
|
|
28
28
|
|
|
29
29
|
<div class="input-group" id="problem-source">
|
|
30
|
-
<label class="inline-label" for="issue-source">${escape(( localize(
|
|
30
|
+
<label class="inline-label" for="issue-source">${escape(( localize(7151, "For")))} <span class="required-input">*</span></label>
|
|
31
31
|
<select id="issue-source" class="inline-form-control" required>
|
|
32
32
|
<!-- To be dynamically filled -->
|
|
33
33
|
</select>
|
|
34
|
-
<div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
34
|
+
<div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(7152, "An issue source is required.")))}</div>
|
|
35
35
|
<div id="problem-source-help-text" class="instructions hidden">${escape(( localize(
|
|
36
|
-
|
|
36
|
+
7153,
|
|
37
37
|
"Try to reproduce the problem after {0}. If the problem only reproduces when extensions are active, it is likely an issue with an extension."
|
|
38
38
|
)))
|
|
39
|
-
.replace('{0}', () => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(
|
|
39
|
+
.replace('{0}', () => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(7154, "disabling all extensions and reloading the window")))}</span>`)}
|
|
40
40
|
</div>
|
|
41
41
|
|
|
42
42
|
<div id="extension-selection">
|
|
43
|
-
<label class="inline-label" for="extension-selector">${escape(( localize(
|
|
43
|
+
<label class="inline-label" for="extension-selector">${escape(( localize(7155, "Extension")))} <span class="required-input">*</span></label>
|
|
44
44
|
<select id="extension-selector" class="inline-form-control">
|
|
45
45
|
<!-- To be dynamically filled -->
|
|
46
46
|
</select>
|
|
47
47
|
<div id="extension-selection-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
48
|
-
|
|
48
|
+
7156,
|
|
49
49
|
"The issue reporter is unable to create issues for this extension. Please visit {0} to report an issue."
|
|
50
50
|
)))
|
|
51
51
|
.replace('{0}', () => `<span tabIndex=0 role="button" id="extensionBugsLink" class="workbenchCommand"><!-- To be dynamically filled --></span>`)}</div>
|
|
52
52
|
<div id="extension-selection-validation-error-no-url" class="validation-error hidden" role="alert">
|
|
53
53
|
${escape(( localize(
|
|
54
|
-
|
|
54
|
+
7157,
|
|
55
55
|
"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."
|
|
56
56
|
)))}
|
|
57
57
|
</div>
|
|
@@ -59,10 +59,10 @@ var BaseHtml = () => `
|
|
|
59
59
|
</div>
|
|
60
60
|
|
|
61
61
|
<div id="issue-title-container" class="input-group">
|
|
62
|
-
<label class="inline-label" for="issue-title">${escape(( localize(
|
|
63
|
-
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(
|
|
64
|
-
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
65
|
-
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
62
|
+
<label class="inline-label" for="issue-title">${escape(( localize(7158, "Title")))} <span class="required-input">*</span></label>
|
|
63
|
+
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(7159, "Please enter a title.")))}" required>
|
|
64
|
+
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(7160, "A title is required.")))}</div>
|
|
65
|
+
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(7161, "The title is too long.")))}</div>
|
|
66
66
|
<small id="similar-issues">
|
|
67
67
|
<!-- To be dynamically filled -->
|
|
68
68
|
</small>
|
|
@@ -78,10 +78,10 @@ var BaseHtml = () => `
|
|
|
78
78
|
<!-- To be dynamically filled -->
|
|
79
79
|
</div>
|
|
80
80
|
<div class="block-info-text">
|
|
81
|
-
<textarea name="description" id="description" placeholder="${escape(( localize(
|
|
81
|
+
<textarea name="description" id="description" placeholder="${escape(( localize(7162, "Please enter details.")))}" required></textarea>
|
|
82
82
|
</div>
|
|
83
|
-
<div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
84
|
-
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
83
|
+
<div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(7163, "A description is required.")))}</div>
|
|
84
|
+
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(7164, "Please provide a longer description.")))}</div>
|
|
85
85
|
</div>
|
|
86
86
|
|
|
87
87
|
<div class="system-info" id="block-container">
|
|
@@ -90,10 +90,10 @@ var BaseHtml = () => `
|
|
|
90
90
|
<label class="extension-caption" id="extension-caption" for="includeExtensionData">
|
|
91
91
|
${sendExtensionData}
|
|
92
92
|
<span id="ext-loading" hidden></span>
|
|
93
|
-
<span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(
|
|
94
|
-
<a id="extension-data-download">${escape(( localize(
|
|
93
|
+
<span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(7165, "show")))}</a><span class="ext-parens" hidden>)</span>
|
|
94
|
+
<a id="extension-data-download">${escape(( localize(7166, "Download Extension Data")))}</a>
|
|
95
95
|
</label>
|
|
96
|
-
<pre class="block-info" id="extension-data" placeholder="${escape(( localize(
|
|
96
|
+
<pre class="block-info" id="extension-data" placeholder="${escape(( localize(7167, "Extension does not have additional data to include.")))}" style="white-space: pre-wrap; user-select: text;">
|
|
97
97
|
<!-- To be dynamically filled -->
|
|
98
98
|
</pre>
|
|
99
99
|
</div>
|
|
@@ -102,7 +102,7 @@ var BaseHtml = () => `
|
|
|
102
102
|
<input class="sendData" aria-label="${sendSystemInfoLabel}" type="checkbox" id="includeSystemInfo" checked/>
|
|
103
103
|
<label class="caption" for="includeSystemInfo">
|
|
104
104
|
${sendSystemInfoLabel}
|
|
105
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
105
|
+
(<a href="#" class="showInfo">${escape(( localize(7165, "show")))}</a>)
|
|
106
106
|
</label>
|
|
107
107
|
<div class="block-info hidden" style="user-select: text;">
|
|
108
108
|
<!-- To be dynamically filled -->
|
|
@@ -112,7 +112,7 @@ var BaseHtml = () => `
|
|
|
112
112
|
<input class="sendData" aria-label="${sendProcessInfoLabel}" type="checkbox" id="includeProcessInfo" checked/>
|
|
113
113
|
<label class="caption" for="includeProcessInfo">
|
|
114
114
|
${sendProcessInfoLabel}
|
|
115
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
115
|
+
(<a href="#" class="showInfo">${escape(( localize(7165, "show")))}</a>)
|
|
116
116
|
</label>
|
|
117
117
|
<pre class="block-info hidden" style="user-select: text;">
|
|
118
118
|
<code>
|
|
@@ -124,7 +124,7 @@ var BaseHtml = () => `
|
|
|
124
124
|
<input class="sendData" aria-label="${sendWorkspaceInfoLabel}" type="checkbox" id="includeWorkspaceInfo" checked/>
|
|
125
125
|
<label class="caption" for="includeWorkspaceInfo">
|
|
126
126
|
${sendWorkspaceInfoLabel}
|
|
127
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
127
|
+
(<a href="#" class="showInfo">${escape(( localize(7165, "show")))}</a>)
|
|
128
128
|
</label>
|
|
129
129
|
<pre id="systemInfo" class="block-info hidden" style="user-select: text;">
|
|
130
130
|
<code>
|
|
@@ -136,7 +136,7 @@ var BaseHtml = () => `
|
|
|
136
136
|
<input class="sendData" aria-label="${sendExtensionsLabel}" type="checkbox" id="includeExtensions" checked/>
|
|
137
137
|
<label class="caption" for="includeExtensions">
|
|
138
138
|
${sendExtensionsLabel}
|
|
139
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
139
|
+
(<a href="#" class="showInfo">${escape(( localize(7165, "show")))}</a>)
|
|
140
140
|
</label>
|
|
141
141
|
<div id="systemInfo" class="block-info hidden" style="user-select: text;">
|
|
142
142
|
<!-- To be dynamically filled -->
|
|
@@ -146,7 +146,7 @@ var BaseHtml = () => `
|
|
|
146
146
|
<input class="sendData" aria-label="${sendExperimentsLabel}" type="checkbox" id="includeExperiments" checked/>
|
|
147
147
|
<label class="caption" for="includeExperiments">
|
|
148
148
|
${sendExperimentsLabel}
|
|
149
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
149
|
+
(<a href="#" class="showInfo">${escape(( localize(7165, "show")))}</a>)
|
|
150
150
|
</label>
|
|
151
151
|
<pre class="block-info hidden" style="user-select: text;">
|
|
152
152
|
<!-- To be dynamically filled -->
|
|
@@ -26,7 +26,7 @@ let IssueWebReporter = class IssueWebReporter extends BaseIssueReporterService {
|
|
|
26
26
|
this.issueReporterModel.update({ issueType: issueType });
|
|
27
27
|
const descriptionTextArea = this.getElementById('issue-title');
|
|
28
28
|
if (descriptionTextArea) {
|
|
29
|
-
descriptionTextArea.placeholder = ( localize(
|
|
29
|
+
descriptionTextArea.placeholder = ( localize(7168, "Please enter a title"));
|
|
30
30
|
}
|
|
31
31
|
this.updatePreviewButtonState();
|
|
32
32
|
this.setSourceOptions();
|
|
@@ -85,13 +85,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
85
85
|
throw ( new Error('invalid state'));
|
|
86
86
|
}
|
|
87
87
|
const res = await this.dialogService.confirm({
|
|
88
|
-
message: ( localize(
|
|
88
|
+
message: ( localize(7169, "Troubleshoot Issue")),
|
|
89
89
|
detail: ( localize(
|
|
90
|
-
|
|
90
|
+
7170,
|
|
91
91
|
"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.",
|
|
92
92
|
this.productService.nameLong
|
|
93
93
|
)),
|
|
94
|
-
primaryButton: ( localize(
|
|
94
|
+
primaryButton: ( localize(7171, "&&Troubleshoot Issue")),
|
|
95
95
|
custom: true
|
|
96
96
|
});
|
|
97
97
|
if (!res.confirmed) {
|
|
@@ -135,7 +135,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
137
|
const result = await this.askToReproduceIssue(( localize(
|
|
138
|
-
|
|
138
|
+
7172,
|
|
139
139
|
"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."
|
|
140
140
|
)));
|
|
141
141
|
if (result === 'good') {
|
|
@@ -153,7 +153,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
153
153
|
await this.userDataProfileManagementService.createAndEnterTransientProfile();
|
|
154
154
|
this.updateState(this.state);
|
|
155
155
|
const result = await this.askToReproduceIssue(( localize(
|
|
156
|
-
|
|
156
|
+
7173,
|
|
157
157
|
"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."
|
|
158
158
|
)));
|
|
159
159
|
if (result === 'stop') {
|
|
@@ -161,13 +161,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
161
161
|
}
|
|
162
162
|
if (result === 'good') {
|
|
163
163
|
await this.askToReportIssue(( localize(
|
|
164
|
-
|
|
164
|
+
7174,
|
|
165
165
|
"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."
|
|
166
166
|
)));
|
|
167
167
|
}
|
|
168
168
|
if (result === 'bad') {
|
|
169
169
|
await this.askToReportIssue(( localize(
|
|
170
|
-
|
|
170
|
+
7175,
|
|
171
171
|
"Issue troubleshooting has identified that the issue is with {0}.",
|
|
172
172
|
this.productService.nameLong
|
|
173
173
|
)));
|
|
@@ -182,15 +182,15 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
182
182
|
askToReproduceIssue(message) {
|
|
183
183
|
return (new Promise((c, e) => {
|
|
184
184
|
const goodPrompt = {
|
|
185
|
-
label: ( localize(
|
|
185
|
+
label: ( localize(7176, "I Can't Reproduce")),
|
|
186
186
|
run: () => c('good')
|
|
187
187
|
};
|
|
188
188
|
const badPrompt = {
|
|
189
|
-
label: ( localize(
|
|
189
|
+
label: ( localize(7177, "I Can Reproduce")),
|
|
190
190
|
run: () => c('bad')
|
|
191
191
|
};
|
|
192
192
|
const stop = {
|
|
193
|
-
label: ( localize(
|
|
193
|
+
label: ( localize(7178, "Stop")),
|
|
194
194
|
run: () => c('stop')
|
|
195
195
|
};
|
|
196
196
|
this.notificationHandle = this.notificationService.prompt(Severity.Info, message, [goodPrompt, badPrompt, stop], { sticky: true, priority: NotificationPriority.URGENT });
|
|
@@ -203,9 +203,9 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
203
203
|
if (res === 'good') {
|
|
204
204
|
await this.dialogService.prompt({
|
|
205
205
|
type: Severity.Info,
|
|
206
|
-
message: ( localize(
|
|
206
|
+
message: ( localize(7169, "Troubleshoot Issue")),
|
|
207
207
|
detail: ( localize(
|
|
208
|
-
|
|
208
|
+
7179,
|
|
209
209
|
"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.",
|
|
210
210
|
this.productService.nameLong
|
|
211
211
|
)),
|
|
@@ -228,11 +228,11 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
228
228
|
async askToReproduceIssueWithInsiders() {
|
|
229
229
|
const confirmRes = await this.dialogService.confirm({
|
|
230
230
|
type: 'info',
|
|
231
|
-
message: ( localize(
|
|
232
|
-
primaryButton: ( localize(
|
|
233
|
-
cancelButton: ( localize(
|
|
231
|
+
message: ( localize(7169, "Troubleshoot Issue")),
|
|
232
|
+
primaryButton: ( localize(7180, "Download {0} Insiders", this.productService.nameLong)),
|
|
233
|
+
cancelButton: ( localize(7181, "Report Issue Anyway")),
|
|
234
234
|
detail: ( localize(
|
|
235
|
-
|
|
235
|
+
7182,
|
|
236
236
|
"Please try to download and reproduce the issue in {0} insiders.",
|
|
237
237
|
this.productService.nameLong
|
|
238
238
|
)),
|
|
@@ -249,20 +249,20 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
249
249
|
}
|
|
250
250
|
const res = await this.dialogService.prompt({
|
|
251
251
|
type: 'info',
|
|
252
|
-
message: ( localize(
|
|
252
|
+
message: ( localize(7169, "Troubleshoot Issue")),
|
|
253
253
|
buttons: [{
|
|
254
|
-
label: ( localize(
|
|
254
|
+
label: ( localize(7183, "I can't reproduce")),
|
|
255
255
|
run: () => 'good'
|
|
256
256
|
}, {
|
|
257
|
-
label: ( localize(
|
|
257
|
+
label: ( localize(7184, "I can reproduce")),
|
|
258
258
|
run: () => 'bad'
|
|
259
259
|
}],
|
|
260
260
|
cancelButton: {
|
|
261
|
-
label: ( localize(
|
|
261
|
+
label: ( localize(7185, "Stop")),
|
|
262
262
|
run: () => 'stop'
|
|
263
263
|
},
|
|
264
264
|
detail: ( localize(
|
|
265
|
-
|
|
265
|
+
7186,
|
|
266
266
|
"Please try to reproduce the issue in {0} insiders and confirm if the issue exists there.",
|
|
267
267
|
this.productService.nameLong
|
|
268
268
|
)),
|
|
@@ -337,7 +337,7 @@ registerAction2(class TroubleshootIssueAction extends Action2 {
|
|
|
337
337
|
constructor() {
|
|
338
338
|
super({
|
|
339
339
|
id: 'workbench.action.troubleshootIssue.start',
|
|
340
|
-
title: ( localize2(
|
|
340
|
+
title: ( localize2(7187, 'Troubleshoot Issue...')),
|
|
341
341
|
category: Categories.Help,
|
|
342
342
|
f1: true,
|
|
343
343
|
precondition: ( ContextKeyExpr.and(( IssueTroubleshootUi.ctxIsTroubleshootActive.negate()), ( RemoteNameContext.isEqualTo('')), ( IsWebContext.negate()))),
|
|
@@ -351,7 +351,7 @@ registerAction2(class extends Action2 {
|
|
|
351
351
|
constructor() {
|
|
352
352
|
super({
|
|
353
353
|
id: 'workbench.action.troubleshootIssue.stop',
|
|
354
|
-
title: ( localize2(
|
|
354
|
+
title: ( localize2(7188, 'Stop Troubleshoot Issue')),
|
|
355
355
|
category: Categories.Help,
|
|
356
356
|
f1: true,
|
|
357
357
|
precondition: IssueTroubleshootUi.ctxIsTroubleshootActive
|
|
@@ -75,7 +75,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
|
|
|
75
75
|
}));
|
|
76
76
|
const reportIssue = {
|
|
77
77
|
id: OpenIssueReporterActionId,
|
|
78
|
-
title: ( localize2(
|
|
78
|
+
title: ( localize2(7189, "Report Issue...")),
|
|
79
79
|
category: Categories.Help
|
|
80
80
|
};
|
|
81
81
|
this._register(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command: reportIssue }));
|
|
@@ -83,7 +83,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
|
|
|
83
83
|
group: '3_feedback',
|
|
84
84
|
command: {
|
|
85
85
|
id: OpenIssueReporterActionId,
|
|
86
|
-
title: ( localize(
|
|
86
|
+
title: ( localize(7190, "Report &&Issue"))
|
|
87
87
|
},
|
|
88
88
|
order: 3
|
|
89
89
|
}));
|