@codingame/monaco-vscode-issue-service-override 33.0.7 → 34.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/index.js +10 -1
- package/package.json +3 -3
- package/vscode/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.js +38 -38
- package/vscode/src/vs/workbench/contrib/issue/browser/githubUploadService.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/issue/browser/githubUploadService.js +12 -0
- package/vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js +2 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueFormService.d.ts +32 -7
- package/vscode/src/vs/workbench/contrib/issue/browser/issueFormService.js +348 -11
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterModel.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterModel.js +28 -29
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterPage.js +32 -32
- package/vscode/src/vs/workbench/contrib/issue/browser/issueReporterService.js +1 -1
- package/vscode/src/vs/workbench/contrib/issue/browser/issueService.js +3 -3
- package/vscode/src/vs/workbench/contrib/issue/browser/issueTroubleshoot.js +23 -23
- package/vscode/src/vs/workbench/contrib/issue/browser/screenshotService.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/issue/browser/screenshotService.js +9 -0
- package/vscode/src/vs/workbench/contrib/issue/common/issue.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/issue/common/issue.d.ts +32 -2
- package/vscode/src/vs/workbench/contrib/issue/common/issue.js +1 -0
package/index.js
CHANGED
|
@@ -5,13 +5,22 @@ import { TroubleshootIssueService } from './vscode/src/vs/workbench/contrib/issu
|
|
|
5
5
|
import { ITroubleshootIssueService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/issueTroubleshoot.service';
|
|
6
6
|
import { BrowserIssueService } from './vscode/src/vs/workbench/contrib/issue/browser/issueService.js';
|
|
7
7
|
import { IssueFormService } from './vscode/src/vs/workbench/contrib/issue/browser/issueFormService.js';
|
|
8
|
+
import { IScreenshotService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/screenshotService.service';
|
|
9
|
+
import { BrowserScreenshotService } from './vscode/src/vs/workbench/contrib/issue/browser/screenshotService.js';
|
|
10
|
+
import { IRecordingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/recordingService.service';
|
|
11
|
+
import { BrowserRecordingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/recordingService';
|
|
12
|
+
import { IGitHubUploadService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/githubUploadService.service';
|
|
13
|
+
import { BrowserGitHubUploadService } from './vscode/src/vs/workbench/contrib/issue/browser/githubUploadService.js';
|
|
8
14
|
import './vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js';
|
|
9
15
|
|
|
10
16
|
function getServiceOverride() {
|
|
11
17
|
return {
|
|
12
18
|
[IWorkbenchIssueService.toString()]: new SyncDescriptor(BrowserIssueService, [], false),
|
|
13
19
|
[ITroubleshootIssueService.toString()]: new SyncDescriptor(TroubleshootIssueService, [], false),
|
|
14
|
-
[IIssueFormService.toString()]: new SyncDescriptor(IssueFormService, [], false)
|
|
20
|
+
[IIssueFormService.toString()]: new SyncDescriptor(IssueFormService, [], false),
|
|
21
|
+
[IScreenshotService.toString()]: new SyncDescriptor(BrowserScreenshotService, [], false),
|
|
22
|
+
[IRecordingService.toString()]: new SyncDescriptor(BrowserRecordingService, [], false),
|
|
23
|
+
[IGitHubUploadService.toString()]: new SyncDescriptor(BrowserGitHubUploadService, [], false)
|
|
15
24
|
};
|
|
16
25
|
}
|
|
17
26
|
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-issue-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "34.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - issue service-override",
|
|
6
6
|
"keywords": [],
|
|
7
|
+
"license": "MIT",
|
|
7
8
|
"author": {
|
|
8
9
|
"name": "CodinGame",
|
|
9
10
|
"url": "http://www.codingame.com"
|
|
10
11
|
},
|
|
11
|
-
"license": "MIT",
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
14
|
"url": "git+ssh://git@github.com/CodinGame/monaco-vscode-api.git"
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "34.0.0"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -116,7 +116,7 @@ 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(10788, "Create on GitHub")), undefined, true, async () => {
|
|
120
120
|
this.delayedSubmit.trigger(async () => {
|
|
121
121
|
this.setSubmittingState(true);
|
|
122
122
|
try {
|
|
@@ -126,7 +126,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
})));
|
|
129
|
-
this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(
|
|
129
|
+
this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(10789, "Preview on GitHub")), undefined, true, async () => {
|
|
130
130
|
this.delayedSubmit.trigger(async () => {
|
|
131
131
|
this.setSubmittingState(true);
|
|
132
132
|
try {
|
|
@@ -136,7 +136,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
138
|
})));
|
|
139
|
-
this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(
|
|
139
|
+
this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(10790, "Create Internally")), undefined, true, async () => {
|
|
140
140
|
this.delayedSubmit.trigger(async () => {
|
|
141
141
|
this.setSubmittingState(true);
|
|
142
142
|
try {
|
|
@@ -241,7 +241,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
241
241
|
filingNote.classList.add("internal-preview-message");
|
|
242
242
|
container.appendChild(filingNote);
|
|
243
243
|
}
|
|
244
|
-
filingNote.textContent = escape(( localize(
|
|
244
|
+
filingNote.textContent = escape(( localize(10791, "If your copilot debug logs contain private information:")));
|
|
245
245
|
}
|
|
246
246
|
updatePublicGithubButton(container) {
|
|
247
247
|
const issueReporterElement = this.getElementById("issue-reporter");
|
|
@@ -253,7 +253,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
253
253
|
}
|
|
254
254
|
if (!this.acknowledged && this.needsUpdate) {
|
|
255
255
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
256
|
-
this.publicGithubButton.label = ( localize(
|
|
256
|
+
this.publicGithubButton.label = ( localize(10792, "Confirm Version Acknowledgement"));
|
|
257
257
|
this.publicGithubButton.enabled = false;
|
|
258
258
|
} else if (this.data.githubAccessToken && this.isPreviewEnabled()) {
|
|
259
259
|
this.publicGithubButton = this._register(( new ButtonWithDropdown(container, {
|
|
@@ -265,21 +265,21 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
265
265
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
266
266
|
this.createAction.run();
|
|
267
267
|
}));
|
|
268
|
-
this.publicGithubButton.label = ( localize(
|
|
268
|
+
this.publicGithubButton.label = ( localize(10793, "Create on GitHub"));
|
|
269
269
|
this.publicGithubButton.enabled = true;
|
|
270
270
|
} else if (this.data.githubAccessToken && !this.isPreviewEnabled()) {
|
|
271
271
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
272
272
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
273
273
|
this.createAction.run();
|
|
274
274
|
}));
|
|
275
|
-
this.publicGithubButton.label = ( localize(
|
|
275
|
+
this.publicGithubButton.label = ( localize(10793, "Create on GitHub"));
|
|
276
276
|
this.publicGithubButton.enabled = true;
|
|
277
277
|
} else {
|
|
278
278
|
this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
|
|
279
279
|
this._register(this.publicGithubButton.onDidClick(() => {
|
|
280
280
|
this.previewAction.run();
|
|
281
281
|
}));
|
|
282
|
-
this.publicGithubButton.label = ( localize(
|
|
282
|
+
this.publicGithubButton.label = ( localize(10794, "Preview on GitHub"));
|
|
283
283
|
this.publicGithubButton.enabled = true;
|
|
284
284
|
}
|
|
285
285
|
const repoLink = this.getElementById("show-repo-name");
|
|
@@ -332,7 +332,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
332
332
|
}));
|
|
333
333
|
this.internalGithubButton.element.id = "internal-create-btn";
|
|
334
334
|
this.internalGithubButton.element.classList.add("internal-create-subtle");
|
|
335
|
-
this.internalGithubButton.label = ( localize(
|
|
335
|
+
this.internalGithubButton.label = ( localize(10795, "Create Internally"));
|
|
336
336
|
this.internalGithubButton.enabled = true;
|
|
337
337
|
this.internalGithubButton.setTitle(this.data.privateUri.path.slice(1));
|
|
338
338
|
}
|
|
@@ -368,7 +368,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
368
368
|
if (submitting) {
|
|
369
369
|
const currentLabel = this.publicGithubButton instanceof ButtonWithDropdown ? this.publicGithubButton.primaryButton.label : this.publicGithubButton.label;
|
|
370
370
|
this.preSubmitButtonLabel = typeof currentLabel === "string" ? currentLabel : "";
|
|
371
|
-
this.publicGithubButton.label = ( localize(
|
|
371
|
+
this.publicGithubButton.label = ( localize(10796, "Submitting..."));
|
|
372
372
|
const spinnerIcon = renderIcon(ThemeIcon.modify(Codicon.loading, "spin"));
|
|
373
373
|
buttonEl.prepend(spinnerIcon);
|
|
374
374
|
} else {
|
|
@@ -440,7 +440,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
440
440
|
const {
|
|
441
441
|
selectedExtension
|
|
442
442
|
} = this.issueReporterModel.getData();
|
|
443
|
-
reset(extensionsSelector, this.makeOption("", ( localize(
|
|
443
|
+
reset(extensionsSelector, this.makeOption("", ( localize(10797, "Select extension")), true), ...( extensionOptions.map(extension => makeOption(extension, selectedExtension))));
|
|
444
444
|
if (!selectedExtension) {
|
|
445
445
|
extensionsSelector.selectedIndex = 0;
|
|
446
446
|
}
|
|
@@ -544,10 +544,10 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
544
544
|
const info = containingElement && containingElement.lastElementChild;
|
|
545
545
|
if (info && info.classList.contains("hidden")) {
|
|
546
546
|
show(info);
|
|
547
|
-
label.textContent = ( localize(
|
|
547
|
+
label.textContent = ( localize(10798, "hide"));
|
|
548
548
|
} else {
|
|
549
549
|
hide(info);
|
|
550
|
-
label.textContent = ( localize(
|
|
550
|
+
label.textContent = ( localize(10799, "show"));
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
553
|
});
|
|
@@ -568,13 +568,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
568
568
|
}
|
|
569
569
|
const descriptionTextArea = this.getElementById("issue-title");
|
|
570
570
|
if (value === IssueSource.VSCode) {
|
|
571
|
-
descriptionTextArea.placeholder = ( localize(
|
|
571
|
+
descriptionTextArea.placeholder = ( localize(10800, "E.g Workbench is missing problems panel"));
|
|
572
572
|
} else if (value === IssueSource.Extension) {
|
|
573
|
-
descriptionTextArea.placeholder = ( localize(
|
|
573
|
+
descriptionTextArea.placeholder = ( localize(10801, "E.g. Missing alt text on extension readme image"));
|
|
574
574
|
} else if (value === IssueSource.Marketplace) {
|
|
575
|
-
descriptionTextArea.placeholder = ( localize(
|
|
575
|
+
descriptionTextArea.placeholder = ( localize(10802, "E.g Cannot disable installed extension"));
|
|
576
576
|
} else {
|
|
577
|
-
descriptionTextArea.placeholder = ( localize(
|
|
577
|
+
descriptionTextArea.placeholder = ( localize(10803, "Please enter a title"));
|
|
578
578
|
}
|
|
579
579
|
let fileOnExtension, fileOnMarketplace, fileOnProduct = false;
|
|
580
580
|
if (value === IssueSource.Extension) {
|
|
@@ -816,7 +816,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
816
816
|
if (results.length) {
|
|
817
817
|
const issues = $("div.issues-container");
|
|
818
818
|
const issuesText = $("div.list-title");
|
|
819
|
-
issuesText.textContent = ( localize(
|
|
819
|
+
issuesText.textContent = ( localize(10804, "Similar issues"));
|
|
820
820
|
this.numberOfSearchResultsDisplayed = results.length < 5 ? results.length : 5;
|
|
821
821
|
for (let i = 0; i < this.numberOfSearchResultsDisplayed; i++) {
|
|
822
822
|
const issue = results[i];
|
|
@@ -836,8 +836,8 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
836
836
|
renderIcon(issue.state === "open" ? Codicon.issueOpened : Codicon.issueClosed)
|
|
837
837
|
);
|
|
838
838
|
const issueStateLabel = $("span.issue-state.label");
|
|
839
|
-
issueStateLabel.textContent = issue.state === "open" ? ( localize(
|
|
840
|
-
issueState.title = issue.state === "open" ? ( localize(
|
|
839
|
+
issueStateLabel.textContent = issue.state === "open" ? ( localize(10805, "Open")) : ( localize(10806, "Closed"));
|
|
840
|
+
issueState.title = issue.state === "open" ? ( localize(10805, "Open")) : ( localize(10806, "Closed"));
|
|
841
841
|
issueState.appendChild(issueIcon);
|
|
842
842
|
issueState.appendChild(issueStateLabel);
|
|
843
843
|
item = $("div.issue", undefined, issueState, link);
|
|
@@ -858,7 +858,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
858
858
|
const {
|
|
859
859
|
issueType
|
|
860
860
|
} = this.issueReporterModel.getData();
|
|
861
|
-
reset(typeSelect, makeOption(IssueType.Bug, ( localize(
|
|
861
|
+
reset(typeSelect, makeOption(IssueType.Bug, ( localize(10807, "Bug Report"))), makeOption(IssueType.FeatureRequest, ( localize(10808, "Feature Request"))), makeOption(IssueType.PerformanceIssue, ( localize(10809, "Performance Issue (freeze, slow, crash)"))));
|
|
862
862
|
typeSelect.value = ( issueType.toString());
|
|
863
863
|
this.setSourceOptions();
|
|
864
864
|
}
|
|
@@ -891,14 +891,14 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
893
|
sourceSelect.innerText = "";
|
|
894
|
-
sourceSelect.append(this.makeOption("", ( localize(
|
|
895
|
-
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(
|
|
896
|
-
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(
|
|
894
|
+
sourceSelect.append(this.makeOption("", ( localize(10810, "Select source")), true));
|
|
895
|
+
sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(10811, "Visual Studio Code")), false));
|
|
896
|
+
sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(10812, "A VS Code extension")), false));
|
|
897
897
|
if (this.product.reportMarketplaceIssueUrl) {
|
|
898
|
-
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(
|
|
898
|
+
sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(10813, "Extensions Marketplace")), false));
|
|
899
899
|
}
|
|
900
900
|
if (issueType !== IssueType.FeatureRequest) {
|
|
901
|
-
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(
|
|
901
|
+
sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(10814, "Don't know")), false));
|
|
902
902
|
}
|
|
903
903
|
if (selected !== -1 && selected < sourceSelect.options.length) {
|
|
904
904
|
sourceSelect.selectedIndex = selected;
|
|
@@ -954,7 +954,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
954
954
|
const fileName = `extensionData_${formattedDate}_${formattedTime}.md`;
|
|
955
955
|
const handleLinkClick = async () => {
|
|
956
956
|
const downloadPath = await this.fileDialogService.showSaveDialog({
|
|
957
|
-
title: ( localize(
|
|
957
|
+
title: ( localize(10815, "Save Extension Data")),
|
|
958
958
|
availableFileSystems: [Schemas.file],
|
|
959
959
|
defaultUri: joinPath(await this.fileDialogService.defaultFilePath(Schemas.file), fileName)
|
|
960
960
|
});
|
|
@@ -970,13 +970,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
970
970
|
if (selectedExtension && this.nonGitHubIssueUrl) {
|
|
971
971
|
hide(titleTextArea);
|
|
972
972
|
hide(descriptionTextArea);
|
|
973
|
-
reset(descriptionTitle, ( localize(
|
|
973
|
+
reset(descriptionTitle, ( localize(10816, "This extension handles issues outside of VS Code")));
|
|
974
974
|
reset(descriptionSubtitle, ( localize(
|
|
975
|
-
|
|
975
|
+
10817,
|
|
976
976
|
"The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.",
|
|
977
977
|
selectedExtension.displayName
|
|
978
978
|
)));
|
|
979
|
-
this.publicGithubButton.label = ( localize(
|
|
979
|
+
this.publicGithubButton.label = ( localize(10818, "Open External Issue Reporter"));
|
|
980
980
|
return;
|
|
981
981
|
}
|
|
982
982
|
if (fileOnExtension && selectedExtension?.data) {
|
|
@@ -1003,9 +1003,9 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1003
1003
|
show(extensionsBlock);
|
|
1004
1004
|
}
|
|
1005
1005
|
}
|
|
1006
|
-
reset(descriptionTitle, ( localize(
|
|
1006
|
+
reset(descriptionTitle, ( localize(10819, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
|
|
1007
1007
|
reset(descriptionSubtitle, ( localize(
|
|
1008
|
-
|
|
1008
|
+
10820,
|
|
1009
1009
|
"Share the steps needed to reliably reproduce the problem. Please include actual and expected results. We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
|
|
1010
1010
|
)));
|
|
1011
1011
|
} else if (issueType === IssueType.PerformanceIssue) {
|
|
@@ -1021,15 +1021,15 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1021
1021
|
} else if (!fileOnMarketplace) {
|
|
1022
1022
|
show(extensionsBlock);
|
|
1023
1023
|
}
|
|
1024
|
-
reset(descriptionTitle, ( localize(
|
|
1024
|
+
reset(descriptionTitle, ( localize(10819, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
|
|
1025
1025
|
reset(descriptionSubtitle, ( localize(
|
|
1026
|
-
|
|
1026
|
+
10821,
|
|
1027
1027
|
"When did this performance issue happen? Does it occur on startup or after a specific series of actions? We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
|
|
1028
1028
|
)));
|
|
1029
1029
|
} else if (issueType === IssueType.FeatureRequest) {
|
|
1030
|
-
reset(descriptionTitle, ( localize(
|
|
1030
|
+
reset(descriptionTitle, ( localize(10822, "Description")) + " ", $("span.required-input", undefined, "*"));
|
|
1031
1031
|
reset(descriptionSubtitle, ( localize(
|
|
1032
|
-
|
|
1032
|
+
10823,
|
|
1033
1033
|
"Please describe the feature you would like to see. We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
|
|
1034
1034
|
)));
|
|
1035
1035
|
}
|
|
@@ -1160,7 +1160,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1160
1160
|
throw ( new CancellationError());
|
|
1161
1161
|
}
|
|
1162
1162
|
return baseUrl + `&body=${encodeURIComponent(( localize(
|
|
1163
|
-
|
|
1163
|
+
10824,
|
|
1164
1164
|
"We have written the needed data into your clipboard because it was too large to send. Please paste."
|
|
1165
1165
|
)))}`;
|
|
1166
1166
|
}
|
|
@@ -1349,7 +1349,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
|
|
|
1349
1349
|
const target = this.window.document.querySelector(".block-extensions .block-info");
|
|
1350
1350
|
if (target) {
|
|
1351
1351
|
if (this.disableExtensions) {
|
|
1352
|
-
reset(target, ( localize(
|
|
1352
|
+
reset(target, ( localize(10825, "Extensions are disabled")));
|
|
1353
1353
|
return;
|
|
1354
1354
|
}
|
|
1355
1355
|
const themeExclusionStr = numThemeExtensions ? `\n(${numThemeExtensions} theme extensions excluded)` : "";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IGitHubUploadService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/githubUploadService.service";
|
|
2
|
+
export interface IGitHubUploadResult {
|
|
3
|
+
readonly fileName: string;
|
|
4
|
+
readonly assetUrl: string;
|
|
5
|
+
readonly contentType: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Browser fallback, upload not yet supported in web.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BrowserGitHubUploadService implements IGitHubUploadService {
|
|
11
|
+
readonly _serviceBrand: undefined;
|
|
12
|
+
resolveRepositoryId(): Promise<string>;
|
|
13
|
+
uploadViaMobileApi(): Promise<IGitHubUploadResult[]>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
class BrowserGitHubUploadService {
|
|
4
|
+
async resolveRepositoryId() {
|
|
5
|
+
throw ( new Error("Not supported in browser"));
|
|
6
|
+
}
|
|
7
|
+
async uploadViaMobileApi() {
|
|
8
|
+
throw ( new Error("Not supported in browser"));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { BrowserGitHubUploadService };
|
|
@@ -14,6 +14,7 @@ import './issueTroubleshoot.js';
|
|
|
14
14
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
15
15
|
import { BaseIssueContribution } from '../common/issue.contribution.js';
|
|
16
16
|
import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
17
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/recordingService';
|
|
17
18
|
|
|
18
19
|
let WebIssueContribution = class WebIssueContribution extends BaseIssueContribution {
|
|
19
20
|
constructor(productService, configurationService) {
|
|
@@ -32,5 +33,5 @@ let WebIssueContribution = class WebIssueContribution extends BaseIssueContribut
|
|
|
32
33
|
WebIssueContribution = ( __decorate([( __param(0, IProductService)), ( __param(1, IConfigurationService))], WebIssueContribution));
|
|
33
34
|
( Registry.as(Extensions$1.Workbench)).registerWorkbenchContribution(WebIssueContribution, LifecyclePhase.Restored);
|
|
34
35
|
CommandsRegistry.registerCommand("_issues.getSystemStatus", accessor => {
|
|
35
|
-
return localize(
|
|
36
|
+
return localize(10826, "The --status argument is not yet supported in browsers.");
|
|
36
37
|
});
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
1
2
|
import { IMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service";
|
|
3
|
+
import { IClipboardService } from "@codingame/monaco-vscode-api/vscode/vs/platform/clipboard/common/clipboardService.service";
|
|
2
4
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
3
5
|
import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
4
6
|
import { ExtensionIdentifierSet } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
|
|
5
7
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
8
|
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
9
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
7
10
|
import { IRectangle } from "@codingame/monaco-vscode-api/vscode/vs/platform/window/common/window";
|
|
8
11
|
import { IAuxiliaryWindowService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.service";
|
|
9
12
|
import { IHostService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service";
|
|
10
|
-
import { IssueReporterData } from "../common/issue.js";
|
|
13
|
+
import { IIssueSubmissionHost, IssueReporterData } from "../common/issue.js";
|
|
11
14
|
import { IIssueFormService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/common/issue.service";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export declare class IssueFormService implements IIssueFormService {
|
|
15
|
+
import { IGitHubUploadService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/githubUploadService.service";
|
|
16
|
+
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
17
|
+
import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
|
|
18
|
+
export declare class IssueFormService extends Disposable implements IIssueFormService {
|
|
17
19
|
protected readonly instantiationService: IInstantiationService;
|
|
18
20
|
protected readonly auxiliaryWindowService: IAuxiliaryWindowService;
|
|
19
21
|
protected readonly menuService: IMenuService;
|
|
@@ -21,6 +23,11 @@ export declare class IssueFormService implements IIssueFormService {
|
|
|
21
23
|
protected readonly logService: ILogService;
|
|
22
24
|
protected readonly dialogService: IDialogService;
|
|
23
25
|
protected readonly hostService: IHostService;
|
|
26
|
+
protected readonly openerService: IOpenerService;
|
|
27
|
+
protected readonly fileService: IFileService;
|
|
28
|
+
protected readonly githubUploadService: IGitHubUploadService;
|
|
29
|
+
protected readonly editorService: IEditorService;
|
|
30
|
+
protected readonly clipboardService: IClipboardService;
|
|
24
31
|
readonly _serviceBrand: undefined;
|
|
25
32
|
protected currentData: IssueReporterData | undefined;
|
|
26
33
|
protected issueReporterWindow: Window | null;
|
|
@@ -28,8 +35,26 @@ export declare class IssueFormService implements IIssueFormService {
|
|
|
28
35
|
protected arch: string;
|
|
29
36
|
protected release: string;
|
|
30
37
|
protected type: string;
|
|
31
|
-
|
|
38
|
+
/** Bounded cache of already-uploaded attachments to avoid re-uploading on retry within a session. Uses a content hash so large data URLs aren't retained as keys. */
|
|
39
|
+
private readonly uploadCache;
|
|
40
|
+
constructor(instantiationService: IInstantiationService, auxiliaryWindowService: IAuxiliaryWindowService, menuService: IMenuService, contextKeyService: IContextKeyService, logService: ILogService, dialogService: IDialogService, hostService: IHostService, openerService: IOpenerService, fileService: IFileService, githubUploadService: IGitHubUploadService, editorService: IEditorService, clipboardService: IClipboardService);
|
|
32
41
|
openReporter(data: IssueReporterData): Promise<void>;
|
|
42
|
+
submitIssue(host: IIssueSubmissionHost, data: IssueReporterData, title: string, body: string): Promise<boolean>;
|
|
43
|
+
private tryCreateBodyWithIssueDataAttachment;
|
|
44
|
+
private uploadIssueDataFile;
|
|
45
|
+
private extractIssueData;
|
|
46
|
+
private createBodyWithIssueDataLink;
|
|
47
|
+
private createIssuePreviewUrl;
|
|
48
|
+
private getIssueTarget;
|
|
49
|
+
private getSelectedExtension;
|
|
50
|
+
private getExtensionIssueUrl;
|
|
51
|
+
private isGitHubUrl;
|
|
52
|
+
private parseGitHubUrl;
|
|
53
|
+
private getIssueUrlWithTitle;
|
|
54
|
+
private addTemplateToUrl;
|
|
55
|
+
private dataUrlToBytes;
|
|
56
|
+
/** Opens the classic non-wizard reporter in an auxiliary window. */
|
|
57
|
+
openAuxIssueReporterLegacy(data: IssueReporterData): Promise<void>;
|
|
33
58
|
openAuxIssueReporter(data: IssueReporterData, bounds?: IRectangle): Promise<void>;
|
|
34
59
|
sendReporterMenu(extensionId: string): Promise<IssueReporterData | undefined>;
|
|
35
60
|
closeReporter(): Promise<void>;
|