@codingame/monaco-vscode-issue-service-override 9.0.3 → 10.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 +41 -42
- package/vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js +2 -4
- package/vscode/src/vs/workbench/contrib/issue/browser/issueFormService.js +6 -6
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterModel.js +8 -9
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterPage.js +30 -30
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterService.js +1 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueService.js +1 -3
- package/vscode/src/vs/workbench/contrib/issue/browser/issueTroubleshoot.js +30 -34
- package/vscode/src/vs/workbench/contrib/issue/common/issue.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/issue/common/issue.js +0 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-issue-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@10.0.0"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -17,7 +17,6 @@ import { localize } from 'vscode/vscode/vs/nls';
|
|
|
17
17
|
import { getIconsStyleSheet } from 'vscode/vscode/vs/platform/theme/browser/iconsStyleSheet';
|
|
18
18
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService.service';
|
|
19
19
|
import { IssueReporterModel } from './issueReporterModel.js';
|
|
20
|
-
import { IssueType } from '../common/issue.js';
|
|
21
20
|
import { IIssueFormService } from 'vscode/vscode/vs/workbench/contrib/issue/common/issue.service';
|
|
22
21
|
import { normalizeGitHubUrl } from '../common/issueReporterUtil.js';
|
|
23
22
|
|
|
@@ -53,7 +52,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
53
52
|
const targetExtension = data.extensionId ? data.enabledExtensions.find(extension => extension.id.toLocaleLowerCase() === data.extensionId?.toLocaleLowerCase()) : undefined;
|
|
54
53
|
this.issueReporterModel = ( (new IssueReporterModel({
|
|
55
54
|
...data,
|
|
56
|
-
issueType: data.issueType ||
|
|
55
|
+
issueType: data.issueType || 0 ,
|
|
57
56
|
versionInfo: {
|
|
58
57
|
vscodeVersion: `${product.nameShort} ${!!product.darwinUniversalAssetId ? `${product.version} (Universal)` : product.version} (${product.commit || 'Commit unknown'}, ${product.date || 'Date unknown'})`,
|
|
59
58
|
os: `${this.os.type} ${this.os.arch} ${this.os.release}${isLinuxSnap ? ' snap' : ''}`
|
|
@@ -235,7 +234,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
235
234
|
const extensionsSelector = this.getElementById('extension-selector');
|
|
236
235
|
if (extensionsSelector) {
|
|
237
236
|
const { selectedExtension } = this.issueReporterModel.getData();
|
|
238
|
-
reset(extensionsSelector, this.makeOption('', ( localize(
|
|
237
|
+
reset(extensionsSelector, this.makeOption('', ( localize(10360, "Select extension")), true), ...( (extensionOptions.map(extension => makeOption(extension, selectedExtension)))));
|
|
239
238
|
if (!selectedExtension) {
|
|
240
239
|
extensionsSelector.selectedIndex = 0;
|
|
241
240
|
}
|
|
@@ -316,11 +315,11 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
316
315
|
const info = containingElement && containingElement.lastElementChild;
|
|
317
316
|
if (info && info.classList.contains('hidden')) {
|
|
318
317
|
show(info);
|
|
319
|
-
label.textContent = ( localize(
|
|
318
|
+
label.textContent = ( localize(10361, "hide"));
|
|
320
319
|
}
|
|
321
320
|
else {
|
|
322
321
|
hide(info);
|
|
323
|
-
label.textContent = ( localize(
|
|
322
|
+
label.textContent = ( localize(10362, "show"));
|
|
324
323
|
}
|
|
325
324
|
}
|
|
326
325
|
});
|
|
@@ -340,16 +339,16 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
340
339
|
}
|
|
341
340
|
const descriptionTextArea = this.getElementById('issue-title');
|
|
342
341
|
if (value === IssueSource.VSCode) {
|
|
343
|
-
descriptionTextArea.placeholder = ( localize(
|
|
342
|
+
descriptionTextArea.placeholder = ( localize(10363, "E.g Workbench is missing problems panel"));
|
|
344
343
|
}
|
|
345
344
|
else if (value === IssueSource.Extension) {
|
|
346
|
-
descriptionTextArea.placeholder = ( localize(
|
|
345
|
+
descriptionTextArea.placeholder = ( localize(10364, "E.g. Missing alt text on extension readme image"));
|
|
347
346
|
}
|
|
348
347
|
else if (value === IssueSource.Marketplace) {
|
|
349
|
-
descriptionTextArea.placeholder = ( localize(
|
|
348
|
+
descriptionTextArea.placeholder = ( localize(10365, "E.g Cannot disable installed extension"));
|
|
350
349
|
}
|
|
351
350
|
else {
|
|
352
|
-
descriptionTextArea.placeholder = ( localize(
|
|
351
|
+
descriptionTextArea.placeholder = ( localize(10366, "Please enter a title"));
|
|
353
352
|
}
|
|
354
353
|
let fileOnExtension, fileOnMarketplace = false;
|
|
355
354
|
if (value === IssueSource.Extension) {
|
|
@@ -454,16 +453,16 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
454
453
|
updatePreviewButtonState() {
|
|
455
454
|
if (this.isPreviewEnabled()) {
|
|
456
455
|
if (this.data.githubAccessToken) {
|
|
457
|
-
this.previewButton.label = ( localize(
|
|
456
|
+
this.previewButton.label = ( localize(10367, "Create on GitHub"));
|
|
458
457
|
}
|
|
459
458
|
else {
|
|
460
|
-
this.previewButton.label = ( localize(
|
|
459
|
+
this.previewButton.label = ( localize(10368, "Preview on GitHub"));
|
|
461
460
|
}
|
|
462
461
|
this.previewButton.enabled = true;
|
|
463
462
|
}
|
|
464
463
|
else {
|
|
465
464
|
this.previewButton.enabled = false;
|
|
466
|
-
this.previewButton.label = ( localize(
|
|
465
|
+
this.previewButton.label = ( localize(10369, "Loading data..."));
|
|
467
466
|
}
|
|
468
467
|
const issueRepoName = this.getElementById('show-repo-name');
|
|
469
468
|
const selectedExtension = this.issueReporterModel.getData().selectedExtension;
|
|
@@ -497,18 +496,18 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
497
496
|
return false;
|
|
498
497
|
}
|
|
499
498
|
if (this.isWeb) {
|
|
500
|
-
if (issueType ===
|
|
499
|
+
if (issueType === 2 || issueType === 1 || issueType === 0 ) {
|
|
501
500
|
return true;
|
|
502
501
|
}
|
|
503
502
|
}
|
|
504
503
|
else {
|
|
505
|
-
if (issueType ===
|
|
504
|
+
if (issueType === 0 && this.receivedSystemInfo) {
|
|
506
505
|
return true;
|
|
507
506
|
}
|
|
508
|
-
if (issueType ===
|
|
507
|
+
if (issueType === 1 && this.receivedSystemInfo && this.receivedPerformanceInfo) {
|
|
509
508
|
return true;
|
|
510
509
|
}
|
|
511
|
-
if (issueType ===
|
|
510
|
+
if (issueType === 2 ) {
|
|
512
511
|
return true;
|
|
513
512
|
}
|
|
514
513
|
}
|
|
@@ -582,7 +581,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
582
581
|
}
|
|
583
582
|
else {
|
|
584
583
|
const message = $('div.list-title');
|
|
585
|
-
message.textContent = ( localize(
|
|
584
|
+
message.textContent = ( localize(10370, "GitHub query limit exceeded. Please wait."));
|
|
586
585
|
similarIssues.appendChild(message);
|
|
587
586
|
const resetTime = response.headers.get('X-RateLimit-Reset');
|
|
588
587
|
const timeToWait = resetTime ? parseInt(resetTime) - Math.floor(Date.now() / 1000) : 1;
|
|
@@ -632,7 +631,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
632
631
|
if (results.length) {
|
|
633
632
|
const issues = $('div.issues-container');
|
|
634
633
|
const issuesText = $('div.list-title');
|
|
635
|
-
issuesText.textContent = ( localize(
|
|
634
|
+
issuesText.textContent = ( localize(10371, "Similar issues"));
|
|
636
635
|
this.numberOfSearchResultsDisplayed = results.length < 5 ? results.length : 5;
|
|
637
636
|
for (let i = 0; i < this.numberOfSearchResultsDisplayed; i++) {
|
|
638
637
|
const issue = results[i];
|
|
@@ -648,8 +647,8 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
648
647
|
const issueIcon = $('span.issue-icon');
|
|
649
648
|
issueIcon.appendChild(renderIcon(issue.state === 'open' ? Codicon.issueOpened : Codicon.issueClosed));
|
|
650
649
|
const issueStateLabel = $('span.issue-state.label');
|
|
651
|
-
issueStateLabel.textContent = issue.state === 'open' ? ( localize(
|
|
652
|
-
issueState.title = issue.state === 'open' ? ( localize(
|
|
650
|
+
issueStateLabel.textContent = issue.state === 'open' ? ( localize(10372, "Open")) : ( localize(10373, "Closed"));
|
|
651
|
+
issueState.title = issue.state === 'open' ? ( localize(10372, "Open")) : ( localize(10373, "Closed"));
|
|
653
652
|
issueState.appendChild(issueIcon);
|
|
654
653
|
issueState.appendChild(issueStateLabel);
|
|
655
654
|
item = $('div.issue', undefined, issueState, link);
|
|
@@ -664,7 +663,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
664
663
|
}
|
|
665
664
|
else {
|
|
666
665
|
const message = $('div.list-title');
|
|
667
|
-
message.textContent = ( localize(
|
|
666
|
+
message.textContent = ( localize(10374, "No similar issues found"));
|
|
668
667
|
similarIssues.appendChild(message);
|
|
669
668
|
}
|
|
670
669
|
}
|
|
@@ -672,7 +671,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
672
671
|
const makeOption = (issueType, description) => $('option', { 'value': issueType.valueOf() }, escape(description));
|
|
673
672
|
const typeSelect = this.getElementById('issue-type');
|
|
674
673
|
const { issueType } = this.issueReporterModel.getData();
|
|
675
|
-
reset(typeSelect, makeOption(
|
|
674
|
+
reset(typeSelect, makeOption(0 , ( localize(10375, "Bug Report"))), makeOption(2 , ( localize(10376, "Feature Request"))), makeOption(1 , ( localize(10377, "Performance Issue (freeze, slow, crash)"))));
|
|
676
675
|
typeSelect.value = ( (issueType.toString()));
|
|
677
676
|
this.setSourceOptions();
|
|
678
677
|
}
|
|
@@ -702,14 +701,14 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
702
701
|
}
|
|
703
702
|
}
|
|
704
703
|
sourceSelect.innerText = '';
|
|
705
|
-
sourceSelect.append(this.makeOption('', ( localize(
|
|
706
|
-
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(
|
|
707
|
-
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(
|
|
704
|
+
sourceSelect.append(this.makeOption('', ( localize(10378, "Select source")), true));
|
|
705
|
+
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(10379, "Visual Studio Code")), false));
|
|
706
|
+
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(10380, "A VS Code extension")), false));
|
|
708
707
|
if (this.product.reportMarketplaceIssueUrl) {
|
|
709
|
-
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(
|
|
708
|
+
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(10381, "Extensions Marketplace")), false));
|
|
710
709
|
}
|
|
711
|
-
if (issueType !==
|
|
712
|
-
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(
|
|
710
|
+
if (issueType !== 2 ) {
|
|
711
|
+
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(10382, "Don't know")), false));
|
|
713
712
|
}
|
|
714
713
|
if (selected !== -1 && selected < sourceSelect.options.length) {
|
|
715
714
|
sourceSelect.selectedIndex = selected;
|
|
@@ -753,13 +752,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
753
752
|
if (selectedExtension && this.nonGitHubIssueUrl) {
|
|
754
753
|
hide(titleTextArea);
|
|
755
754
|
hide(descriptionTextArea);
|
|
756
|
-
reset(descriptionTitle, ( localize(
|
|
755
|
+
reset(descriptionTitle, ( localize(10383, "This extension handles issues outside of VS Code")));
|
|
757
756
|
reset(descriptionSubtitle, ( localize(
|
|
758
|
-
|
|
757
|
+
10384,
|
|
759
758
|
"The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.",
|
|
760
759
|
selectedExtension.displayName
|
|
761
760
|
)));
|
|
762
|
-
this.previewButton.label = ( localize(
|
|
761
|
+
this.previewButton.label = ( localize(10385, "Open External Issue Reporter"));
|
|
763
762
|
return;
|
|
764
763
|
}
|
|
765
764
|
if (fileOnExtension && selectedExtension?.data) {
|
|
@@ -777,7 +776,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
777
776
|
}, 100);
|
|
778
777
|
show(extensionDataBlock);
|
|
779
778
|
}
|
|
780
|
-
if (issueType ===
|
|
779
|
+
if (issueType === 0 ) {
|
|
781
780
|
if (!fileOnMarketplace) {
|
|
782
781
|
show(blockContainer);
|
|
783
782
|
show(systemBlock);
|
|
@@ -786,13 +785,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
786
785
|
show(extensionsBlock);
|
|
787
786
|
}
|
|
788
787
|
}
|
|
789
|
-
reset(descriptionTitle, ( localize(
|
|
788
|
+
reset(descriptionTitle, ( localize(10386, "Steps to Reproduce")) + ' ', $('span.required-input', undefined, '*'));
|
|
790
789
|
reset(descriptionSubtitle, ( localize(
|
|
791
|
-
|
|
790
|
+
10387,
|
|
792
791
|
"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."
|
|
793
792
|
)));
|
|
794
793
|
}
|
|
795
|
-
else if (issueType ===
|
|
794
|
+
else if (issueType === 1 ) {
|
|
796
795
|
if (!fileOnMarketplace) {
|
|
797
796
|
show(blockContainer);
|
|
798
797
|
show(systemBlock);
|
|
@@ -806,16 +805,16 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
806
805
|
else if (!fileOnMarketplace) {
|
|
807
806
|
show(extensionsBlock);
|
|
808
807
|
}
|
|
809
|
-
reset(descriptionTitle, ( localize(
|
|
808
|
+
reset(descriptionTitle, ( localize(10386, "Steps to Reproduce")) + ' ', $('span.required-input', undefined, '*'));
|
|
810
809
|
reset(descriptionSubtitle, ( localize(
|
|
811
|
-
|
|
810
|
+
10388,
|
|
812
811
|
"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."
|
|
813
812
|
)));
|
|
814
813
|
}
|
|
815
|
-
else if (issueType ===
|
|
816
|
-
reset(descriptionTitle, ( localize(
|
|
814
|
+
else if (issueType === 2 ) {
|
|
815
|
+
reset(descriptionTitle, ( localize(10389, "Description")) + ' ', $('span.required-input', undefined, '*'));
|
|
817
816
|
reset(descriptionSubtitle, ( localize(
|
|
818
|
-
|
|
817
|
+
10390,
|
|
819
818
|
"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."
|
|
820
819
|
)));
|
|
821
820
|
}
|
|
@@ -949,7 +948,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
949
948
|
throw ( (new CancellationError()));
|
|
950
949
|
}
|
|
951
950
|
return baseUrl + `&body=${encodeURIComponent(( localize(
|
|
952
|
-
|
|
951
|
+
10391,
|
|
953
952
|
"We have written the needed data into your clipboard because it was too large to send. Please paste."
|
|
954
953
|
)))}`;
|
|
955
954
|
}
|
|
@@ -1119,7 +1118,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1119
1118
|
const target = this.window.document.querySelector('.block-extensions .block-info');
|
|
1120
1119
|
if (target) {
|
|
1121
1120
|
if (this.disableExtensions) {
|
|
1122
|
-
reset(target, ( localize(
|
|
1121
|
+
reset(target, ( localize(10392, "Extensions are disabled")));
|
|
1123
1122
|
return;
|
|
1124
1123
|
}
|
|
1125
1124
|
const themeExclusionStr = numThemeExtensions ? `\n(${numThemeExtensions} theme extensions excluded)` : '';
|
|
@@ -3,7 +3,6 @@ import { localize } from 'vscode/vscode/vs/nls';
|
|
|
3
3
|
import { CommandsRegistry } from 'vscode/vscode/vs/platform/commands/common/commands';
|
|
4
4
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
5
5
|
import { Extensions } from 'vscode/vscode/vs/platform/configuration/common/configurationRegistry';
|
|
6
|
-
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
7
6
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
8
7
|
import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
|
|
9
8
|
import { Extensions as Extensions$1 } from 'vscode/vscode/vs/workbench/common/contributions';
|
|
@@ -12,7 +11,6 @@ import './issueService.js';
|
|
|
12
11
|
import './issueTroubleshoot.js';
|
|
13
12
|
import 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
14
13
|
import { BaseIssueContribution } from '../common/issue.contribution.js';
|
|
15
|
-
import { LifecyclePhase } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
16
14
|
|
|
17
15
|
let WebIssueContribution = class WebIssueContribution extends BaseIssueContribution {
|
|
18
16
|
constructor(productService, configurationService) {
|
|
@@ -32,7 +30,7 @@ WebIssueContribution = ( (__decorate([
|
|
|
32
30
|
( (__param(0, IProductService))),
|
|
33
31
|
( (__param(1, IConfigurationService)))
|
|
34
32
|
], WebIssueContribution)));
|
|
35
|
-
( (Registry.as(Extensions$1.Workbench))).registerWorkbenchContribution(WebIssueContribution,
|
|
33
|
+
( (Registry.as(Extensions$1.Workbench))).registerWorkbenchContribution(WebIssueContribution, 3 );
|
|
36
34
|
CommandsRegistry.registerCommand('_issues.getSystemStatus', (accessor) => {
|
|
37
|
-
return ( localize(
|
|
35
|
+
return ( localize(2702, "The --status argument is not yet supported in browsers."));
|
|
38
36
|
});
|
|
@@ -111,19 +111,19 @@ let IssueFormService = class IssueFormService {
|
|
|
111
111
|
await this.dialogService.prompt({
|
|
112
112
|
type: Severity$1.Warning,
|
|
113
113
|
message: ( localize(
|
|
114
|
-
|
|
114
|
+
2697,
|
|
115
115
|
"Your input will not be saved. Are you sure you want to close this window?"
|
|
116
116
|
)),
|
|
117
117
|
buttons: [
|
|
118
118
|
{
|
|
119
|
-
label: ( localize(
|
|
119
|
+
label: ( localize(2698, "&&Yes")),
|
|
120
120
|
run: () => {
|
|
121
121
|
this.closeReporter();
|
|
122
122
|
this.issueReporterWindow = null;
|
|
123
123
|
}
|
|
124
124
|
},
|
|
125
125
|
{
|
|
126
|
-
label: ( localize(
|
|
126
|
+
label: ( localize(2699, "Cancel")),
|
|
127
127
|
run: () => { }
|
|
128
128
|
}
|
|
129
129
|
]
|
|
@@ -134,16 +134,16 @@ let IssueFormService = class IssueFormService {
|
|
|
134
134
|
await this.dialogService.prompt({
|
|
135
135
|
type: Severity$1.Warning,
|
|
136
136
|
message: ( localize(
|
|
137
|
-
|
|
137
|
+
2700,
|
|
138
138
|
"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."
|
|
139
139
|
)),
|
|
140
140
|
buttons: [
|
|
141
141
|
{
|
|
142
|
-
label: ( localize(
|
|
142
|
+
label: ( localize(2701, "&&OK")),
|
|
143
143
|
run: () => { result = true; }
|
|
144
144
|
},
|
|
145
145
|
{
|
|
146
|
-
label: ( localize(
|
|
146
|
+
label: ( localize(2699, "Cancel")),
|
|
147
147
|
run: () => { result = false; }
|
|
148
148
|
}
|
|
149
149
|
]
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
2
2
|
import { isRemoteDiagnosticError } from 'vscode/vscode/vs/platform/diagnostics/common/diagnostics';
|
|
3
|
-
import { IssueType } from '../common/issue.js';
|
|
4
3
|
|
|
5
4
|
class IssueReporterModel {
|
|
6
5
|
constructor(initialData) {
|
|
7
6
|
const defaultData = {
|
|
8
|
-
issueType:
|
|
7
|
+
issueType: 0 ,
|
|
9
8
|
includeSystemInfo: true,
|
|
10
9
|
includeWorkspaceInfo: true,
|
|
11
10
|
includeProcessInfo: true,
|
|
@@ -60,9 +59,9 @@ ${this.getInfos()}
|
|
|
60
59
|
return '';
|
|
61
60
|
}
|
|
62
61
|
fileOnExtension() {
|
|
63
|
-
const fileOnExtensionSupported = this._data.issueType ===
|
|
64
|
-
|| this._data.issueType ===
|
|
65
|
-
|| this._data.issueType ===
|
|
62
|
+
const fileOnExtensionSupported = this._data.issueType === 0
|
|
63
|
+
|| this._data.issueType === 1
|
|
64
|
+
|| this._data.issueType === 2 ;
|
|
66
65
|
return fileOnExtensionSupported && this._data.fileOnExtension;
|
|
67
66
|
}
|
|
68
67
|
getExtensionVersion() {
|
|
@@ -74,10 +73,10 @@ ${this.getInfos()}
|
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
getIssueTypeTitle() {
|
|
77
|
-
if (this._data.issueType ===
|
|
76
|
+
if (this._data.issueType === 0 ) {
|
|
78
77
|
return 'Bug';
|
|
79
78
|
}
|
|
80
|
-
else if (this._data.issueType ===
|
|
79
|
+
else if (this._data.issueType === 1 ) {
|
|
81
80
|
return 'Performance Issue';
|
|
82
81
|
}
|
|
83
82
|
else {
|
|
@@ -89,7 +88,7 @@ ${this.getInfos()}
|
|
|
89
88
|
if (this._data.fileOnMarketplace) {
|
|
90
89
|
return info;
|
|
91
90
|
}
|
|
92
|
-
const isBugOrPerformanceIssue = this._data.issueType ===
|
|
91
|
+
const isBugOrPerformanceIssue = this._data.issueType === 0 || this._data.issueType === 1 ;
|
|
93
92
|
if (isBugOrPerformanceIssue) {
|
|
94
93
|
if (this._data.includeExtensionData && this._data.extensionData) {
|
|
95
94
|
info += this.getExtensionData();
|
|
@@ -101,7 +100,7 @@ ${this.getInfos()}
|
|
|
101
100
|
info += 'System Info: ' + this._data.systemInfoWeb;
|
|
102
101
|
}
|
|
103
102
|
}
|
|
104
|
-
if (this._data.issueType ===
|
|
103
|
+
if (this._data.issueType === 1 ) {
|
|
105
104
|
if (this._data.includeProcessInfo) {
|
|
106
105
|
info += this.generateProcessInfoMd();
|
|
107
106
|
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
import { escape } from 'vscode/vscode/vs/base/common/strings';
|
|
2
2
|
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
|
|
4
|
-
const sendSystemInfoLabel = escape(( localize(
|
|
5
|
-
const sendProcessInfoLabel = escape(( localize(
|
|
6
|
-
const sendWorkspaceInfoLabel = escape(( localize(
|
|
7
|
-
const sendExtensionsLabel = escape(( localize(
|
|
8
|
-
const sendExperimentsLabel = escape(( localize(
|
|
9
|
-
const sendExtensionData = escape(( localize(
|
|
4
|
+
const sendSystemInfoLabel = escape(( localize(6143, "Include my system information")));
|
|
5
|
+
const sendProcessInfoLabel = escape(( localize(6144, "Include my currently running processes")));
|
|
6
|
+
const sendWorkspaceInfoLabel = escape(( localize(6145, "Include my workspace metadata")));
|
|
7
|
+
const sendExtensionsLabel = escape(( localize(6146, "Include my enabled extensions")));
|
|
8
|
+
const sendExperimentsLabel = escape(( localize(6147, "Include A/B experiment info")));
|
|
9
|
+
const sendExtensionData = escape(( localize(6148, "Include additional extension info")));
|
|
10
10
|
const reviewGuidanceLabel = ( localize(
|
|
11
|
-
|
|
11
|
+
6149,
|
|
12
12
|
'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>.'
|
|
13
13
|
));
|
|
14
14
|
var BaseHtml = () => `
|
|
15
15
|
<div class="issue-reporter" id="issue-reporter">
|
|
16
|
-
<div id="english" class="input-group hidden">${escape(( localize(
|
|
16
|
+
<div id="english" class="input-group hidden">${escape(( localize(6150, "Please complete the form in English.")))}</div>
|
|
17
17
|
|
|
18
18
|
<div id="review-guidance-help-text" class="input-group">${reviewGuidanceLabel}</div>
|
|
19
19
|
|
|
20
20
|
<div class="section">
|
|
21
21
|
<div class="input-group">
|
|
22
|
-
<label class="inline-label" for="issue-type">${escape(( localize(
|
|
22
|
+
<label class="inline-label" for="issue-type">${escape(( localize(6151, "This is a")))}</label>
|
|
23
23
|
<select id="issue-type" class="inline-form-control">
|
|
24
24
|
<!-- To be dynamically filled -->
|
|
25
25
|
</select>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<div class="input-group" id="problem-source">
|
|
29
|
-
<label class="inline-label" for="issue-source">${escape(( localize(
|
|
29
|
+
<label class="inline-label" for="issue-source">${escape(( localize(6152, "For")))} <span class="required-input">*</span></label>
|
|
30
30
|
<select id="issue-source" class="inline-form-control" required>
|
|
31
31
|
<!-- To be dynamically filled -->
|
|
32
32
|
</select>
|
|
33
|
-
<div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
33
|
+
<div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(6153, "An issue source is required.")))}</div>
|
|
34
34
|
<div id="problem-source-help-text" class="instructions hidden">${escape(( localize(
|
|
35
|
-
|
|
35
|
+
6154,
|
|
36
36
|
"Try to reproduce the problem after {0}. If the problem only reproduces when extensions are active, it is likely an issue with an extension."
|
|
37
37
|
)))
|
|
38
|
-
.replace('{0}', () => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(
|
|
38
|
+
.replace('{0}', () => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(6155, "disabling all extensions and reloading the window")))}</span>`)}
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
41
|
<div id="extension-selection">
|
|
42
|
-
<label class="inline-label" for="extension-selector">${escape(( localize(
|
|
42
|
+
<label class="inline-label" for="extension-selector">${escape(( localize(6156, "Extension")))} <span class="required-input">*</span></label>
|
|
43
43
|
<select id="extension-selector" class="inline-form-control">
|
|
44
44
|
<!-- To be dynamically filled -->
|
|
45
45
|
</select>
|
|
46
46
|
<div id="extension-selection-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
47
|
-
|
|
47
|
+
6157,
|
|
48
48
|
"The issue reporter is unable to create issues for this extension. Please visit {0} to report an issue."
|
|
49
49
|
)))
|
|
50
50
|
.replace('{0}', () => `<span tabIndex=0 role="button" id="extensionBugsLink" class="workbenchCommand"><!-- To be dynamically filled --></span>`)}</div>
|
|
51
51
|
<div id="extension-selection-validation-error-no-url" class="validation-error hidden" role="alert">
|
|
52
52
|
${escape(( localize(
|
|
53
|
-
|
|
53
|
+
6158,
|
|
54
54
|
"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."
|
|
55
55
|
)))}
|
|
56
56
|
</div>
|
|
@@ -58,10 +58,10 @@ var BaseHtml = () => `
|
|
|
58
58
|
</div>
|
|
59
59
|
|
|
60
60
|
<div id="issue-title-container" class="input-group">
|
|
61
|
-
<label class="inline-label" for="issue-title">${escape(( localize(
|
|
62
|
-
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(
|
|
63
|
-
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
64
|
-
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
61
|
+
<label class="inline-label" for="issue-title">${escape(( localize(6159, "Title")))} <span class="required-input">*</span></label>
|
|
62
|
+
<input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(6160, "Please enter a title.")))}" required>
|
|
63
|
+
<div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(6161, "A title is required.")))}</div>
|
|
64
|
+
<div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(6162, "The title is too long.")))}</div>
|
|
65
65
|
<small id="similar-issues">
|
|
66
66
|
<!-- To be dynamically filled -->
|
|
67
67
|
</small>
|
|
@@ -77,10 +77,10 @@ var BaseHtml = () => `
|
|
|
77
77
|
<!-- To be dynamically filled -->
|
|
78
78
|
</div>
|
|
79
79
|
<div class="block-info-text">
|
|
80
|
-
<textarea name="description" id="description" placeholder="${escape(( localize(
|
|
80
|
+
<textarea name="description" id="description" placeholder="${escape(( localize(6163, "Please enter details.")))}" required></textarea>
|
|
81
81
|
</div>
|
|
82
|
-
<div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
83
|
-
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(
|
|
82
|
+
<div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(6164, "A description is required.")))}</div>
|
|
83
|
+
<div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(6165, "Please provide a longer description.")))}</div>
|
|
84
84
|
</div>
|
|
85
85
|
|
|
86
86
|
<div class="system-info" id="block-container">
|
|
@@ -89,9 +89,9 @@ var BaseHtml = () => `
|
|
|
89
89
|
<label class="extension-caption" id="extension-caption" for="includeExtensionData">
|
|
90
90
|
${sendExtensionData}
|
|
91
91
|
<span id="ext-loading" hidden></span>
|
|
92
|
-
<span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(
|
|
92
|
+
<span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(6166, "show")))}</a><span class="ext-parens" hidden>)</span>
|
|
93
93
|
</label>
|
|
94
|
-
<pre class="block-info" id="extension-data" placeholder="${escape(( localize(
|
|
94
|
+
<pre class="block-info" id="extension-data" placeholder="${escape(( localize(6167, "Extension does not have additional data to include.")))}" style="white-space: pre-wrap; user-select: text;">
|
|
95
95
|
<!-- To be dynamically filled -->
|
|
96
96
|
</pre>
|
|
97
97
|
</div>
|
|
@@ -100,7 +100,7 @@ var BaseHtml = () => `
|
|
|
100
100
|
<input class="sendData" aria-label="${sendSystemInfoLabel}" type="checkbox" id="includeSystemInfo" checked/>
|
|
101
101
|
<label class="caption" for="includeSystemInfo">
|
|
102
102
|
${sendSystemInfoLabel}
|
|
103
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
103
|
+
(<a href="#" class="showInfo">${escape(( localize(6166, "show")))}</a>)
|
|
104
104
|
</label>
|
|
105
105
|
<div class="block-info hidden">
|
|
106
106
|
<!-- To be dynamically filled -->
|
|
@@ -110,7 +110,7 @@ var BaseHtml = () => `
|
|
|
110
110
|
<input class="sendData" aria-label="${sendProcessInfoLabel}" type="checkbox" id="includeProcessInfo" checked/>
|
|
111
111
|
<label class="caption" for="includeProcessInfo">
|
|
112
112
|
${sendProcessInfoLabel}
|
|
113
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
113
|
+
(<a href="#" class="showInfo">${escape(( localize(6166, "show")))}</a>)
|
|
114
114
|
</label>
|
|
115
115
|
<pre class="block-info hidden">
|
|
116
116
|
<code>
|
|
@@ -122,7 +122,7 @@ var BaseHtml = () => `
|
|
|
122
122
|
<input class="sendData" aria-label="${sendWorkspaceInfoLabel}" type="checkbox" id="includeWorkspaceInfo" checked/>
|
|
123
123
|
<label class="caption" for="includeWorkspaceInfo">
|
|
124
124
|
${sendWorkspaceInfoLabel}
|
|
125
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
125
|
+
(<a href="#" class="showInfo">${escape(( localize(6166, "show")))}</a>)
|
|
126
126
|
</label>
|
|
127
127
|
<pre id="systemInfo" class="block-info hidden">
|
|
128
128
|
<code>
|
|
@@ -134,7 +134,7 @@ var BaseHtml = () => `
|
|
|
134
134
|
<input class="sendData" aria-label="${sendExtensionsLabel}" type="checkbox" id="includeExtensions" checked/>
|
|
135
135
|
<label class="caption" for="includeExtensions">
|
|
136
136
|
${sendExtensionsLabel}
|
|
137
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
137
|
+
(<a href="#" class="showInfo">${escape(( localize(6166, "show")))}</a>)
|
|
138
138
|
</label>
|
|
139
139
|
<div id="systemInfo" class="block-info hidden">
|
|
140
140
|
<!-- To be dynamically filled -->
|
|
@@ -144,7 +144,7 @@ var BaseHtml = () => `
|
|
|
144
144
|
<input class="sendData" aria-label="${sendExperimentsLabel}" type="checkbox" id="includeExperiments" checked/>
|
|
145
145
|
<label class="caption" for="includeExperiments">
|
|
146
146
|
${sendExperimentsLabel}
|
|
147
|
-
(<a href="#" class="showInfo">${escape(( localize(
|
|
147
|
+
(<a href="#" class="showInfo">${escape(( localize(6166, "show")))}</a>)
|
|
148
148
|
</label>
|
|
149
149
|
<pre class="block-info hidden">
|
|
150
150
|
<!-- To be dynamically filled -->
|
|
@@ -23,7 +23,7 @@ let IssueWebReporter = class IssueWebReporter extends BaseIssueReporterService {
|
|
|
23
23
|
this.issueReporterModel.update({ issueType: issueType });
|
|
24
24
|
const descriptionTextArea = this.getElementById('issue-title');
|
|
25
25
|
if (descriptionTextArea) {
|
|
26
|
-
descriptionTextArea.placeholder = ( localize(
|
|
26
|
+
descriptionTextArea.placeholder = ( localize(6168, "Please enter a title"));
|
|
27
27
|
}
|
|
28
28
|
this.updatePreviewButtonState();
|
|
29
29
|
this.setSourceOptions();
|
|
@@ -5,8 +5,6 @@ import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
|
5
5
|
import { userAgent } from 'vscode/vscode/vs/base/common/platform';
|
|
6
6
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
7
7
|
import { IExtensionManagementService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
8
|
-
import { ExtensionType } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
9
|
-
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
10
8
|
import { normalizeGitHubUrl } from '../../../../platform/issue/common/issueReporterUtil.js';
|
|
11
9
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
12
10
|
import 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
@@ -88,7 +86,7 @@ let BrowserIssueService = class BrowserIssueService {
|
|
|
88
86
|
const { manifest } = extension;
|
|
89
87
|
const manifestKeys = manifest.contributes ? ( Object.keys(manifest.contributes)) : [];
|
|
90
88
|
const isTheme = !manifest.main && !manifest.browser && manifestKeys.length === 1 && manifestKeys[0] === 'themes';
|
|
91
|
-
const isBuiltin = extension.type ===
|
|
89
|
+
const isBuiltin = extension.type === 0 ;
|
|
92
90
|
return {
|
|
93
91
|
name: manifest.name,
|
|
94
92
|
publisher: manifest.publisher,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { localize, localize2 } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { IExtensionManagementService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
4
|
-
import { ExtensionType } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
5
4
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
6
5
|
import { IWorkbenchIssueService } from 'vscode/vscode/vs/workbench/contrib/issue/common/issue.service';
|
|
7
6
|
import { Disposable, DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
@@ -15,13 +14,10 @@ import { IWorkbenchExtensionEnablementService } from 'vscode/vscode/vs/workbench
|
|
|
15
14
|
import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
|
|
16
15
|
import { IUserDataProfilesService } from 'vscode/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
17
16
|
import { Categories } from 'vscode/vscode/vs/platform/action/common/actionCommonCategories';
|
|
18
|
-
import 'vscode/vscode/vs/platform/instantiation/common/extensions';
|
|
19
17
|
import { RawContextKey, ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
20
18
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
21
19
|
import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
|
|
22
20
|
import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
|
|
23
|
-
import { LifecyclePhase } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
24
|
-
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
25
21
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
26
22
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
|
|
27
23
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
@@ -86,13 +82,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
86
82
|
throw ( (new Error('invalid state')));
|
|
87
83
|
}
|
|
88
84
|
const res = await this.dialogService.confirm({
|
|
89
|
-
message: ( localize(
|
|
85
|
+
message: ( localize(2677, "Troubleshoot Issue")),
|
|
90
86
|
detail: ( localize(
|
|
91
|
-
|
|
87
|
+
2678,
|
|
92
88
|
"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.",
|
|
93
89
|
this.productService.nameLong
|
|
94
90
|
)),
|
|
95
|
-
primaryButton: ( localize(
|
|
91
|
+
primaryButton: ( localize(2679, "&&Troubleshoot Issue")),
|
|
96
92
|
custom: true
|
|
97
93
|
});
|
|
98
94
|
if (!res.confirmed) {
|
|
@@ -131,12 +127,12 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
131
127
|
await this.userDataProfileManagementService.switchProfile(profile);
|
|
132
128
|
}
|
|
133
129
|
async reproduceIssueWithExtensionsDisabled() {
|
|
134
|
-
if (!(await this.extensionManagementService.getInstalled(
|
|
130
|
+
if (!(await this.extensionManagementService.getInstalled(1 )).length) {
|
|
135
131
|
this.state = ( (new TroubleShootState(TroubleshootStage.WORKBENCH, this.state.profile)));
|
|
136
132
|
return;
|
|
137
133
|
}
|
|
138
134
|
const result = await this.askToReproduceIssue(( localize(
|
|
139
|
-
|
|
135
|
+
2680,
|
|
140
136
|
"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."
|
|
141
137
|
)));
|
|
142
138
|
if (result === 'good') {
|
|
@@ -154,7 +150,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
154
150
|
await this.userDataProfileManagementService.createAndEnterTransientProfile();
|
|
155
151
|
this.updateState(this.state);
|
|
156
152
|
const result = await this.askToReproduceIssue(( localize(
|
|
157
|
-
|
|
153
|
+
2681,
|
|
158
154
|
"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."
|
|
159
155
|
)));
|
|
160
156
|
if (result === 'stop') {
|
|
@@ -162,13 +158,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
162
158
|
}
|
|
163
159
|
if (result === 'good') {
|
|
164
160
|
await this.askToReportIssue(( localize(
|
|
165
|
-
|
|
161
|
+
2682,
|
|
166
162
|
"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."
|
|
167
163
|
)));
|
|
168
164
|
}
|
|
169
165
|
if (result === 'bad') {
|
|
170
166
|
await this.askToReportIssue(( localize(
|
|
171
|
-
|
|
167
|
+
2683,
|
|
172
168
|
"Issue troubleshooting has identified that the issue is with {0}.",
|
|
173
169
|
this.productService.nameLong
|
|
174
170
|
)));
|
|
@@ -176,7 +172,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
176
172
|
}
|
|
177
173
|
async reproduceIssueWithExtensionsBisect(profile) {
|
|
178
174
|
await this.userDataProfileManagementService.switchProfile(profile);
|
|
179
|
-
const extensions = (await this.extensionManagementService.getInstalled(
|
|
175
|
+
const extensions = (await this.extensionManagementService.getInstalled(1 )).filter(ext => this.extensionEnablementService.isEnabled(ext));
|
|
180
176
|
await this.extensionBisectService.start(extensions);
|
|
181
177
|
await this.hostService.reload();
|
|
182
178
|
}
|
|
@@ -184,15 +180,15 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
184
180
|
return (
|
|
185
181
|
(new Promise((c, e) => {
|
|
186
182
|
const goodPrompt = {
|
|
187
|
-
label: ( localize(
|
|
183
|
+
label: ( localize(2684, "I Can't Reproduce")),
|
|
188
184
|
run: () => c('good')
|
|
189
185
|
};
|
|
190
186
|
const badPrompt = {
|
|
191
|
-
label: ( localize(
|
|
187
|
+
label: ( localize(2685, "I Can Reproduce")),
|
|
192
188
|
run: () => c('bad')
|
|
193
189
|
};
|
|
194
190
|
const stop = {
|
|
195
|
-
label: ( localize(
|
|
191
|
+
label: ( localize(2686, "Stop")),
|
|
196
192
|
run: () => c('stop')
|
|
197
193
|
};
|
|
198
194
|
this.notificationHandle = this.notificationService.prompt(Severity$1.Info, message, [goodPrompt, badPrompt, stop], { sticky: true, priority: NotificationPriority.URGENT });
|
|
@@ -206,9 +202,9 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
206
202
|
if (res === 'good') {
|
|
207
203
|
await this.dialogService.prompt({
|
|
208
204
|
type: Severity$1.Info,
|
|
209
|
-
message: ( localize(
|
|
205
|
+
message: ( localize(2677, "Troubleshoot Issue")),
|
|
210
206
|
detail: ( localize(
|
|
211
|
-
|
|
207
|
+
2687,
|
|
212
208
|
"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.",
|
|
213
209
|
this.productService.nameLong
|
|
214
210
|
)),
|
|
@@ -231,11 +227,11 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
231
227
|
async askToReproduceIssueWithInsiders() {
|
|
232
228
|
const confirmRes = await this.dialogService.confirm({
|
|
233
229
|
type: 'info',
|
|
234
|
-
message: ( localize(
|
|
235
|
-
primaryButton: ( localize(
|
|
236
|
-
cancelButton: ( localize(
|
|
230
|
+
message: ( localize(2677, "Troubleshoot Issue")),
|
|
231
|
+
primaryButton: ( localize(2688, "Download {0} Insiders", this.productService.nameLong)),
|
|
232
|
+
cancelButton: ( localize(2689, "Report Issue Anyway")),
|
|
237
233
|
detail: ( localize(
|
|
238
|
-
|
|
234
|
+
2690,
|
|
239
235
|
"Please try to download and reproduce the issue in {0} insiders.",
|
|
240
236
|
this.productService.nameLong
|
|
241
237
|
)),
|
|
@@ -252,20 +248,20 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
252
248
|
}
|
|
253
249
|
const res = await this.dialogService.prompt({
|
|
254
250
|
type: 'info',
|
|
255
|
-
message: ( localize(
|
|
251
|
+
message: ( localize(2677, "Troubleshoot Issue")),
|
|
256
252
|
buttons: [{
|
|
257
|
-
label: ( localize(
|
|
253
|
+
label: ( localize(2691, "I can't reproduce")),
|
|
258
254
|
run: () => 'good'
|
|
259
255
|
}, {
|
|
260
|
-
label: ( localize(
|
|
256
|
+
label: ( localize(2692, "I can reproduce")),
|
|
261
257
|
run: () => 'bad'
|
|
262
258
|
}],
|
|
263
259
|
cancelButton: {
|
|
264
|
-
label: ( localize(
|
|
260
|
+
label: ( localize(2693, "Stop")),
|
|
265
261
|
run: () => 'stop'
|
|
266
262
|
},
|
|
267
263
|
detail: ( localize(
|
|
268
|
-
|
|
264
|
+
2694,
|
|
269
265
|
"Please try to reproduce the issue in {0} insiders and confirm if the issue exists there.",
|
|
270
266
|
this.productService.nameLong
|
|
271
267
|
)),
|
|
@@ -277,7 +273,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
277
273
|
}
|
|
278
274
|
get state() {
|
|
279
275
|
if (this._state === undefined) {
|
|
280
|
-
const raw = this.storageService.get(TroubleshootIssueService_1.storageKey,
|
|
276
|
+
const raw = this.storageService.get(TroubleshootIssueService_1.storageKey, 0 );
|
|
281
277
|
this._state = TroubleShootState.fromJSON(raw);
|
|
282
278
|
}
|
|
283
279
|
return this._state || undefined;
|
|
@@ -288,10 +284,10 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
|
|
|
288
284
|
}
|
|
289
285
|
updateState(state) {
|
|
290
286
|
if (state) {
|
|
291
|
-
this.storageService.store(TroubleshootIssueService_1.storageKey, JSON.stringify(state),
|
|
287
|
+
this.storageService.store(TroubleshootIssueService_1.storageKey, JSON.stringify(state), 0 , 1 );
|
|
292
288
|
}
|
|
293
289
|
else {
|
|
294
|
-
this.storageService.remove(TroubleshootIssueService_1.storageKey,
|
|
290
|
+
this.storageService.remove(TroubleshootIssueService_1.storageKey, 0 );
|
|
295
291
|
}
|
|
296
292
|
}
|
|
297
293
|
};
|
|
@@ -322,7 +318,7 @@ let IssueTroubleshootUi = class IssueTroubleshootUi extends Disposable {
|
|
|
322
318
|
if (troubleshootIssueService.isActive()) {
|
|
323
319
|
troubleshootIssueService.resume();
|
|
324
320
|
}
|
|
325
|
-
this._register(storageService.onDidChangeValue(
|
|
321
|
+
this._register(storageService.onDidChangeValue(0 , TroubleshootIssueService.storageKey, this._register(( (new DisposableStore()))))(() => {
|
|
326
322
|
this.updateContext();
|
|
327
323
|
}));
|
|
328
324
|
}
|
|
@@ -335,12 +331,12 @@ IssueTroubleshootUi = IssueTroubleshootUi_1 = ( (__decorate([
|
|
|
335
331
|
( (__param(1, ITroubleshootIssueService))),
|
|
336
332
|
( (__param(2, IStorageService)))
|
|
337
333
|
], IssueTroubleshootUi)));
|
|
338
|
-
( (Registry.as(Extensions.Workbench))).registerWorkbenchContribution(IssueTroubleshootUi,
|
|
334
|
+
( (Registry.as(Extensions.Workbench))).registerWorkbenchContribution(IssueTroubleshootUi, 3 );
|
|
339
335
|
registerAction2(class TroubleshootIssueAction extends Action2 {
|
|
340
336
|
constructor() {
|
|
341
337
|
super({
|
|
342
338
|
id: 'workbench.action.troubleshootIssue.start',
|
|
343
|
-
title: ( localize2(
|
|
339
|
+
title: ( localize2(2695, 'Troubleshoot Issue...')),
|
|
344
340
|
category: Categories.Help,
|
|
345
341
|
f1: true,
|
|
346
342
|
precondition: ( (ContextKeyExpr.and(
|
|
@@ -358,7 +354,7 @@ registerAction2(class extends Action2 {
|
|
|
358
354
|
constructor() {
|
|
359
355
|
super({
|
|
360
356
|
id: 'workbench.action.troubleshootIssue.stop',
|
|
361
|
-
title: ( localize2(
|
|
357
|
+
title: ( localize2(2696, 'Stop Troubleshoot Issue')),
|
|
362
358
|
category: Categories.Help,
|
|
363
359
|
f1: true,
|
|
364
360
|
precondition: IssueTroubleshootUi.ctxIsTroubleshootActive
|
|
@@ -74,7 +74,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
|
|
|
74
74
|
}));
|
|
75
75
|
const reportIssue = {
|
|
76
76
|
id: OpenIssueReporterActionId,
|
|
77
|
-
title: ( localize2(
|
|
77
|
+
title: ( localize2(6169, "Report Issue...")),
|
|
78
78
|
category: Categories.Help
|
|
79
79
|
};
|
|
80
80
|
this._register(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command: reportIssue }));
|
|
@@ -82,7 +82,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
|
|
|
82
82
|
group: '3_feedback',
|
|
83
83
|
command: {
|
|
84
84
|
id: OpenIssueReporterActionId,
|
|
85
|
-
title: ( localize(
|
|
85
|
+
title: ( localize(6170, "Report &&Issue"))
|
|
86
86
|
},
|
|
87
87
|
order: 3
|
|
88
88
|
}));
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var IssueType;
|
|
2
|
-
( (function(IssueType) {
|
|
3
|
-
IssueType[IssueType["Bug"] = 0] = "Bug";
|
|
4
|
-
IssueType[IssueType["PerformanceIssue"] = 1] = "PerformanceIssue";
|
|
5
|
-
IssueType[IssueType["FeatureRequest"] = 2] = "FeatureRequest";
|
|
6
|
-
})(IssueType || (IssueType = {})));
|
|
7
|
-
|
|
8
|
-
export { IssueType };
|