@codingame/monaco-vscode-update-service-override 26.2.2 → 28.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/platform/assignment/common/assignment.d.ts +86 -0
- package/vscode/src/vs/platform/assignment/common/assignment.js +32 -0
- package/vscode/src/vs/platform/update/common/update.config.contribution.js +31 -17
- package/vscode/src/vs/workbench/contrib/markdown/browser/markdownSettingRenderer.js +14 -14
- package/vscode/src/vs/workbench/contrib/update/browser/media/updateStatusBarEntry.css +142 -0
- package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesEditor.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesEditor.js +178 -5
- package/vscode/src/vs/workbench/contrib/update/browser/update.contribution.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/update/browser/update.contribution.js +39 -29
- package/vscode/src/vs/workbench/contrib/update/browser/update.d.ts +16 -5
- package/vscode/src/vs/workbench/contrib/update/browser/update.js +150 -129
- package/vscode/src/vs/workbench/contrib/update/browser/updateStatusBarEntry.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/update/browser/updateStatusBarEntry.js +471 -0
- package/vscode/src/vs/workbench/services/update/browser/updateService.d.ts +2 -2
- package/vscode/src/vs/workbench/services/update/browser/updateService.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-update-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - update service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "28.0.0"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
2
|
+
import type { IExperimentationFilterProvider } from "tas-client";
|
|
3
|
+
export declare const ASSIGNMENT_STORAGE_KEY = "VSCode.ABExp.FeatureData";
|
|
4
|
+
export declare const ASSIGNMENT_REFETCH_INTERVAL: number;
|
|
5
|
+
export interface IAssignmentService {
|
|
6
|
+
readonly _serviceBrand: undefined;
|
|
7
|
+
readonly onDidRefetchAssignments: Event<void>;
|
|
8
|
+
getTreatment<T extends string | number | boolean>(name: string): Promise<T | undefined>;
|
|
9
|
+
}
|
|
10
|
+
export declare enum TargetPopulation {
|
|
11
|
+
Insiders = "insider",
|
|
12
|
+
Public = "public",
|
|
13
|
+
Exploration = "exploration"
|
|
14
|
+
}
|
|
15
|
+
export declare enum Filters {
|
|
16
|
+
/**
|
|
17
|
+
* The market in which the extension is distributed.
|
|
18
|
+
*/
|
|
19
|
+
Market = "X-MSEdge-Market",
|
|
20
|
+
/**
|
|
21
|
+
* The corporation network.
|
|
22
|
+
*/
|
|
23
|
+
CorpNet = "X-FD-Corpnet",
|
|
24
|
+
/**
|
|
25
|
+
* Version of the application which uses experimentation service.
|
|
26
|
+
*/
|
|
27
|
+
ApplicationVersion = "X-VSCode-AppVersion",
|
|
28
|
+
/**
|
|
29
|
+
* Insiders vs Stable.
|
|
30
|
+
*/
|
|
31
|
+
Build = "X-VSCode-Build",
|
|
32
|
+
/**
|
|
33
|
+
* Client Id which is used as primary unit for the experimentation.
|
|
34
|
+
*/
|
|
35
|
+
ClientId = "X-MSEdge-ClientId",
|
|
36
|
+
/**
|
|
37
|
+
* Developer Device Id which can be used as an alternate unit for experimentation.
|
|
38
|
+
*/
|
|
39
|
+
DeveloperDeviceId = "X-VSCode-DevDeviceId",
|
|
40
|
+
/**
|
|
41
|
+
* Extension header.
|
|
42
|
+
*/
|
|
43
|
+
ExtensionName = "X-VSCode-ExtensionName",
|
|
44
|
+
/**
|
|
45
|
+
* The version of the extension.
|
|
46
|
+
*/
|
|
47
|
+
ExtensionVersion = "X-VSCode-ExtensionVersion",
|
|
48
|
+
/**
|
|
49
|
+
* The language in use by VS Code
|
|
50
|
+
*/
|
|
51
|
+
Language = "X-VSCode-Language",
|
|
52
|
+
/**
|
|
53
|
+
* The target population.
|
|
54
|
+
* This is used to separate internal, early preview, GA, etc.
|
|
55
|
+
*/
|
|
56
|
+
TargetPopulation = "X-VSCode-TargetPopulation",
|
|
57
|
+
/**
|
|
58
|
+
* The platform (OS) on which VS Code is running.
|
|
59
|
+
*/
|
|
60
|
+
Platform = "X-VSCode-Platform",
|
|
61
|
+
/**
|
|
62
|
+
* The release/build date of VS Code (UTC) in the format yyyymmddHH.
|
|
63
|
+
*/
|
|
64
|
+
ReleaseDate = "X-VSCode-ReleaseDate"
|
|
65
|
+
}
|
|
66
|
+
export declare class AssignmentFilterProvider implements IExperimentationFilterProvider {
|
|
67
|
+
private version;
|
|
68
|
+
private appName;
|
|
69
|
+
private machineId;
|
|
70
|
+
private devDeviceId;
|
|
71
|
+
private targetPopulation;
|
|
72
|
+
private releaseDate;
|
|
73
|
+
constructor(version: string, appName: string, machineId: string, devDeviceId: string, targetPopulation: TargetPopulation, releaseDate: string);
|
|
74
|
+
/**
|
|
75
|
+
* Returns a version string that can be parsed by the TAS client.
|
|
76
|
+
* The tas client cannot handle suffixes lke "-insider"
|
|
77
|
+
* Ref: https://github.com/microsoft/tas-client/blob/30340d5e1da37c2789049fcf45928b954680606f/vscode-tas-client/src/vscode-tas-client/VSCodeFilterProvider.ts#L35
|
|
78
|
+
*
|
|
79
|
+
* @param version Version string to be trimmed.
|
|
80
|
+
*/
|
|
81
|
+
private static trimVersionSuffix;
|
|
82
|
+
getFilterValue(filter: string): string | null;
|
|
83
|
+
private static formatReleaseDate;
|
|
84
|
+
getFilters(): Map<string, unknown>;
|
|
85
|
+
}
|
|
86
|
+
export declare function getInternalOrg(organisations: string[] | undefined): "vscode" | "github" | "microsoft" | undefined;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
3
|
+
|
|
4
|
+
var TargetPopulation;
|
|
5
|
+
(function(TargetPopulation) {
|
|
6
|
+
TargetPopulation["Insiders"] = "insider";
|
|
7
|
+
TargetPopulation["Public"] = "public";
|
|
8
|
+
TargetPopulation["Exploration"] = "exploration";
|
|
9
|
+
})(TargetPopulation || (TargetPopulation = {}));
|
|
10
|
+
var Filters;
|
|
11
|
+
(function(Filters) {
|
|
12
|
+
Filters["Market"] = "X-MSEdge-Market";
|
|
13
|
+
Filters["CorpNet"] = "X-FD-Corpnet";
|
|
14
|
+
Filters["ApplicationVersion"] = "X-VSCode-AppVersion";
|
|
15
|
+
Filters["Build"] = "X-VSCode-Build";
|
|
16
|
+
Filters["ClientId"] = "X-MSEdge-ClientId";
|
|
17
|
+
Filters["DeveloperDeviceId"] = "X-VSCode-DevDeviceId";
|
|
18
|
+
Filters["ExtensionName"] = "X-VSCode-ExtensionName";
|
|
19
|
+
Filters["ExtensionVersion"] = "X-VSCode-ExtensionVersion";
|
|
20
|
+
Filters["Language"] = "X-VSCode-Language";
|
|
21
|
+
Filters["TargetPopulation"] = "X-VSCode-TargetPopulation";
|
|
22
|
+
Filters["Platform"] = "X-VSCode-Platform";
|
|
23
|
+
Filters["ReleaseDate"] = "X-VSCode-ReleaseDate";
|
|
24
|
+
})(Filters || (Filters = {}));
|
|
25
|
+
function getInternalOrg(organisations) {
|
|
26
|
+
const isVSCodeInternal = organisations?.includes("Visual-Studio-Code");
|
|
27
|
+
const isGitHubInternal = organisations?.includes("github");
|
|
28
|
+
const isMicrosoftInternal = organisations?.includes("microsoft") || organisations?.includes("ms-copilot") || organisations?.includes("MicrosoftCopilot");
|
|
29
|
+
return isVSCodeInternal ? "vscode" : isGitHubInternal ? "github" : isMicrosoftInternal ? "microsoft" : undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { Filters, TargetPopulation, getInternalOrg };
|
|
@@ -9,7 +9,7 @@ const configurationRegistry = ( Registry.as(Extensions.Configuration));
|
|
|
9
9
|
configurationRegistry.registerConfiguration({
|
|
10
10
|
id: "update",
|
|
11
11
|
order: 15,
|
|
12
|
-
title: ( localize(
|
|
12
|
+
title: ( localize(2484, "Update")),
|
|
13
13
|
type: "object",
|
|
14
14
|
properties: {
|
|
15
15
|
"update.mode": {
|
|
@@ -18,18 +18,18 @@ configurationRegistry.registerConfiguration({
|
|
|
18
18
|
default: "default",
|
|
19
19
|
scope: ConfigurationScope.APPLICATION,
|
|
20
20
|
description: ( localize(
|
|
21
|
-
|
|
21
|
+
2485,
|
|
22
22
|
"Configure whether you receive automatic updates. Requires a restart after change. The updates are fetched from a Microsoft online service."
|
|
23
23
|
)),
|
|
24
24
|
tags: ["usesOnlineServices"],
|
|
25
|
-
enumDescriptions: [( localize(
|
|
26
|
-
|
|
25
|
+
enumDescriptions: [( localize(2486, "Disable updates.")), ( localize(
|
|
26
|
+
2487,
|
|
27
27
|
"Disable automatic background update checks. Updates will be available if you manually check for updates."
|
|
28
28
|
)), ( localize(
|
|
29
|
-
|
|
29
|
+
2488,
|
|
30
30
|
"Check for updates only on startup. Disable automatic background update checks."
|
|
31
31
|
)), ( localize(
|
|
32
|
-
|
|
32
|
+
2489,
|
|
33
33
|
"Enable automatic update checks. Code will check for updates automatically and periodically."
|
|
34
34
|
))],
|
|
35
35
|
policy: {
|
|
@@ -40,29 +40,29 @@ configurationRegistry.registerConfiguration({
|
|
|
40
40
|
description: {
|
|
41
41
|
key: "updateMode",
|
|
42
42
|
value: ( localize(
|
|
43
|
-
|
|
43
|
+
2485,
|
|
44
44
|
"Configure whether you receive automatic updates. Requires a restart after change. The updates are fetched from a Microsoft online service."
|
|
45
45
|
))
|
|
46
46
|
},
|
|
47
47
|
enumDescriptions: [{
|
|
48
48
|
key: "none",
|
|
49
|
-
value: ( localize(
|
|
49
|
+
value: ( localize(2486, "Disable updates."))
|
|
50
50
|
}, {
|
|
51
51
|
key: "manual",
|
|
52
52
|
value: ( localize(
|
|
53
|
-
|
|
53
|
+
2487,
|
|
54
54
|
"Disable automatic background update checks. Updates will be available if you manually check for updates."
|
|
55
55
|
))
|
|
56
56
|
}, {
|
|
57
57
|
key: "start",
|
|
58
58
|
value: ( localize(
|
|
59
|
-
|
|
59
|
+
2488,
|
|
60
60
|
"Check for updates only on startup. Disable automatic background update checks."
|
|
61
61
|
))
|
|
62
62
|
}, {
|
|
63
63
|
key: "default",
|
|
64
64
|
value: ( localize(
|
|
65
|
-
|
|
65
|
+
2489,
|
|
66
66
|
"Enable automatic update checks. Code will check for updates automatically and periodically."
|
|
67
67
|
))
|
|
68
68
|
}]
|
|
@@ -74,11 +74,11 @@ configurationRegistry.registerConfiguration({
|
|
|
74
74
|
default: "default",
|
|
75
75
|
scope: ConfigurationScope.APPLICATION,
|
|
76
76
|
description: ( localize(
|
|
77
|
-
|
|
77
|
+
2485,
|
|
78
78
|
"Configure whether you receive automatic updates. Requires a restart after change. The updates are fetched from a Microsoft online service."
|
|
79
79
|
)),
|
|
80
80
|
deprecationMessage: ( localize(
|
|
81
|
-
|
|
81
|
+
2490,
|
|
82
82
|
"This setting is deprecated, please use '{0}' instead.",
|
|
83
83
|
"update.mode"
|
|
84
84
|
))
|
|
@@ -87,10 +87,10 @@ configurationRegistry.registerConfiguration({
|
|
|
87
87
|
type: "boolean",
|
|
88
88
|
default: true,
|
|
89
89
|
scope: ConfigurationScope.APPLICATION,
|
|
90
|
-
title: ( localize(
|
|
90
|
+
title: ( localize(2491, "Enable Background Updates")),
|
|
91
91
|
description: ( localize(
|
|
92
|
-
|
|
93
|
-
"Enable to download and install new VS Code versions in the background
|
|
92
|
+
2492,
|
|
93
|
+
"Enable to download and install new VS Code versions in the background."
|
|
94
94
|
)),
|
|
95
95
|
included: isWindows && !isWeb
|
|
96
96
|
},
|
|
@@ -99,10 +99,24 @@ configurationRegistry.registerConfiguration({
|
|
|
99
99
|
default: true,
|
|
100
100
|
scope: ConfigurationScope.APPLICATION,
|
|
101
101
|
description: ( localize(
|
|
102
|
-
|
|
102
|
+
2493,
|
|
103
103
|
"Show Release Notes after an update. The Release Notes are fetched from a Microsoft online service."
|
|
104
104
|
)),
|
|
105
105
|
tags: ["usesOnlineServices"]
|
|
106
|
+
},
|
|
107
|
+
"update.statusBar": {
|
|
108
|
+
type: "string",
|
|
109
|
+
enum: ["hidden", "actionable", "detailed"],
|
|
110
|
+
default: "detailed",
|
|
111
|
+
scope: ConfigurationScope.APPLICATION,
|
|
112
|
+
description: ( localize(2494, "Controls the visibility of the update status bar entry.")),
|
|
113
|
+
enumDescriptions: [( localize(2495, "The status bar entry is never shown.")), ( localize(
|
|
114
|
+
2496,
|
|
115
|
+
"The status bar entry is shown when an action is required (e.g., download, install, or restart)."
|
|
116
|
+
)), ( localize(
|
|
117
|
+
2497,
|
|
118
|
+
"The status bar entry is shown for all update states including progress."
|
|
119
|
+
))]
|
|
106
120
|
}
|
|
107
121
|
}
|
|
108
122
|
});
|
|
@@ -123,11 +123,11 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
123
123
|
}
|
|
124
124
|
viewInSettingsMessage(settingId, alreadyDisplayed) {
|
|
125
125
|
if (alreadyDisplayed) {
|
|
126
|
-
return localize(
|
|
126
|
+
return localize(9938, "View in Settings");
|
|
127
127
|
} else {
|
|
128
128
|
const displayName = settingKeyToDisplayFormat(settingId);
|
|
129
129
|
return localize(
|
|
130
|
-
|
|
130
|
+
9939,
|
|
131
131
|
"View \"{0}: {1}\" in Settings",
|
|
132
132
|
displayName.category,
|
|
133
133
|
displayName.label
|
|
@@ -137,7 +137,7 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
137
137
|
restorePreviousSettingMessage(settingId) {
|
|
138
138
|
const displayName = settingKeyToDisplayFormat(settingId);
|
|
139
139
|
return localize(
|
|
140
|
-
|
|
140
|
+
9940,
|
|
141
141
|
"Restore value of \"{0}: {1}\"",
|
|
142
142
|
displayName.category,
|
|
143
143
|
displayName.label
|
|
@@ -152,14 +152,14 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
152
152
|
if (this.isAlreadySet(setting, booleanValue)) {
|
|
153
153
|
if (booleanValue) {
|
|
154
154
|
return localize(
|
|
155
|
-
|
|
155
|
+
9941,
|
|
156
156
|
"\"{0}: {1}\" is already enabled",
|
|
157
157
|
displayName.category,
|
|
158
158
|
displayName.label
|
|
159
159
|
);
|
|
160
160
|
} else {
|
|
161
161
|
return localize(
|
|
162
|
-
|
|
162
|
+
9942,
|
|
163
163
|
"\"{0}: {1}\" is already disabled",
|
|
164
164
|
displayName.category,
|
|
165
165
|
displayName.label
|
|
@@ -167,16 +167,16 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
if (booleanValue) {
|
|
170
|
-
return localize(
|
|
170
|
+
return localize(9943, "Enable \"{0}: {1}\"", displayName.category, displayName.label);
|
|
171
171
|
} else {
|
|
172
|
-
return localize(
|
|
172
|
+
return localize(9944, "Disable \"{0}: {1}\"", displayName.category, displayName.label);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
stringSettingMessage(setting, stringValue) {
|
|
176
176
|
const displayName = settingKeyToDisplayFormat(setting.key);
|
|
177
177
|
if (this.isAlreadySet(setting, stringValue)) {
|
|
178
178
|
return localize(
|
|
179
|
-
|
|
179
|
+
9945,
|
|
180
180
|
"\"{0}: {1}\" is already set to \"{2}\"",
|
|
181
181
|
displayName.category,
|
|
182
182
|
displayName.label,
|
|
@@ -184,7 +184,7 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
184
184
|
);
|
|
185
185
|
}
|
|
186
186
|
return localize(
|
|
187
|
-
|
|
187
|
+
9946,
|
|
188
188
|
"Set \"{0}: {1}\" to \"{2}\"",
|
|
189
189
|
displayName.category,
|
|
190
190
|
displayName.label,
|
|
@@ -195,7 +195,7 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
195
195
|
const displayName = settingKeyToDisplayFormat(setting.key);
|
|
196
196
|
if (this.isAlreadySet(setting, numberValue)) {
|
|
197
197
|
return localize(
|
|
198
|
-
|
|
198
|
+
9947,
|
|
199
199
|
"\"{0}: {1}\" is already set to {2}",
|
|
200
200
|
displayName.category,
|
|
201
201
|
displayName.label,
|
|
@@ -203,7 +203,7 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
203
203
|
);
|
|
204
204
|
}
|
|
205
205
|
return localize(
|
|
206
|
-
|
|
206
|
+
9948,
|
|
207
207
|
"Set \"{0}: {1}\" to {2}",
|
|
208
208
|
displayName.category,
|
|
209
209
|
displayName.label,
|
|
@@ -212,7 +212,7 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
212
212
|
}
|
|
213
213
|
renderSetting(setting, newValue) {
|
|
214
214
|
const href = this.settingToUriString(setting.key, newValue);
|
|
215
|
-
const title = ( localize(
|
|
215
|
+
const title = ( localize(9949, "View or change setting"));
|
|
216
216
|
return `<code tabindex="0"><a href="${href}" class="codesetting" title="${title}" aria-role="button"><svg width="14" height="14" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M9.1 4.4L8.6 2H7.4l-.5 2.4-.7.3-2-1.3-.9.8 1.3 2-.2.7-2.4.5v1.2l2.4.5.3.8-1.3 2 .8.8 2-1.3.8.3.4 2.3h1.2l.5-2.4.8-.3 2 1.3.8-.8-1.3-2 .3-.8 2.3-.4V7.4l-2.4-.5-.3-.8 1.3-2-.8-.8-2 1.3-.7-.2zM9.4 1l.5 2.4L12 2.1l2 2-1.4 2.1 2.4.4v2.8l-2.4.5L14 12l-2 2-2.1-1.4-.5 2.4H6.6l-.5-2.4L4 13.9l-2-2 1.4-2.1L1 9.4V6.6l2.4-.5L2.1 4l2-2 2.1 1.4.4-2.4h2.8zm.6 7c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM8 9c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1z"/></svg>
|
|
217
217
|
<span class="separator"></span>
|
|
218
218
|
<span class="setting-name">${setting.key}</span>
|
|
@@ -290,8 +290,8 @@ let SimpleSettingRenderer = class SimpleSettingRenderer {
|
|
|
290
290
|
class: undefined,
|
|
291
291
|
enabled: true,
|
|
292
292
|
id: "copySettingId",
|
|
293
|
-
tooltip: ( localize(
|
|
294
|
-
label: ( localize(
|
|
293
|
+
tooltip: ( localize(9950, "Copy Setting ID")),
|
|
294
|
+
label: ( localize(9950, "Copy Setting ID")),
|
|
295
295
|
run: () => {
|
|
296
296
|
this._clipboardService.writeText(settingId);
|
|
297
297
|
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
.monaco-workbench .part.statusbar > .items-container > #status\.update > a > span {
|
|
7
|
+
color: var(--vscode-button-background);
|
|
8
|
+
font-size: 16px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.update-status-tooltip {
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
padding: 4px 0;
|
|
15
|
+
min-width: 310px;
|
|
16
|
+
max-width: 410px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Header with title and gear icon */
|
|
20
|
+
.update-status-tooltip .header {
|
|
21
|
+
display: flex;
|
|
22
|
+
justify-content: space-between;
|
|
23
|
+
align-items: center;
|
|
24
|
+
margin-bottom: 12px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.update-status-tooltip .header .title {
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
font-size: var(--vscode-bodyFontSize);
|
|
30
|
+
color: var(--vscode-foreground);
|
|
31
|
+
margin-bottom: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.update-status-tooltip .header .monaco-action-bar {
|
|
35
|
+
margin-left: auto;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Product info section with logo */
|
|
39
|
+
.update-status-tooltip .product-info {
|
|
40
|
+
display: flex;
|
|
41
|
+
gap: 12px;
|
|
42
|
+
margin-bottom: 16px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.update-status-tooltip .product-logo {
|
|
46
|
+
width: 48px;
|
|
47
|
+
height: 48px;
|
|
48
|
+
border-radius: var(--vscode-cornerRadius-large);
|
|
49
|
+
padding: 5px;
|
|
50
|
+
flex-shrink: 0;
|
|
51
|
+
background-image: url('../../../../browser/media/code-icon.svg');
|
|
52
|
+
background-size: contain;
|
|
53
|
+
background-position: center;
|
|
54
|
+
background-repeat: no-repeat;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.update-status-tooltip .product-details {
|
|
58
|
+
display: flex;
|
|
59
|
+
flex-direction: column;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.update-status-tooltip .product-name {
|
|
64
|
+
font-weight: 600;
|
|
65
|
+
color: var(--vscode-foreground);
|
|
66
|
+
margin-bottom: 4px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.update-status-tooltip .product-version,
|
|
70
|
+
.update-status-tooltip .product-release-date {
|
|
71
|
+
color: var(--vscode-descriptionForeground);
|
|
72
|
+
font-size: var(--vscode-bodyFontSize-small);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.update-status-tooltip .release-notes-link {
|
|
76
|
+
color: var(--vscode-textLink-foreground);
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
font-size: var(--vscode-bodyFontSize-small);
|
|
79
|
+
cursor: pointer;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.update-status-tooltip .release-notes-link:hover {
|
|
83
|
+
color: var(--vscode-textLink-activeForeground);
|
|
84
|
+
text-decoration: underline;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* What's Included section */
|
|
88
|
+
.update-status-tooltip .whats-included .section-title {
|
|
89
|
+
font-weight: 600;
|
|
90
|
+
color: var(--vscode-foreground);
|
|
91
|
+
margin-bottom: 8px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.update-status-tooltip .whats-included ul {
|
|
95
|
+
margin: 0;
|
|
96
|
+
padding-left: 16px;
|
|
97
|
+
color: var(--vscode-descriptionForeground);
|
|
98
|
+
font-size: var(--vscode-bodyFontSize-small);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.update-status-tooltip .whats-included li {
|
|
102
|
+
margin-bottom: 2px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Progress bar */
|
|
106
|
+
.update-status-tooltip .progress-container {
|
|
107
|
+
margin-bottom: 8px;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.update-status-tooltip .progress-bar {
|
|
111
|
+
width: 100%;
|
|
112
|
+
height: 4px;
|
|
113
|
+
background-color: color-mix(in srgb, var(--vscode-progressBar-background) 30%, transparent);
|
|
114
|
+
border-radius: var(--vscode-cornerRadius-small);
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.update-status-tooltip .progress-bar .progress-fill {
|
|
119
|
+
height: 100%;
|
|
120
|
+
background-color: var(--vscode-progressBar-background);
|
|
121
|
+
border-radius: var(--vscode-cornerRadius-small);
|
|
122
|
+
transition: width 0.3s ease;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.update-status-tooltip .progress-text {
|
|
126
|
+
display: flex;
|
|
127
|
+
justify-content: space-between;
|
|
128
|
+
margin-top: 4px;
|
|
129
|
+
font-size: var(--vscode-bodyFontSize-small);
|
|
130
|
+
color: var(--vscode-descriptionForeground);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.update-status-tooltip .progress-details {
|
|
134
|
+
color: var(--vscode-descriptionForeground);
|
|
135
|
+
margin-bottom: 4px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.update-status-tooltip .speed-info,
|
|
139
|
+
.update-status-tooltip .time-remaining {
|
|
140
|
+
color: var(--vscode-descriptionForeground);
|
|
141
|
+
font-size: var(--vscode-bodyFontSize-small);
|
|
142
|
+
}
|
|
@@ -13,6 +13,8 @@ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/l
|
|
|
13
13
|
import { SimpleSettingRenderer } from "../../markdown/browser/markdownSettingRenderer.js";
|
|
14
14
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
15
15
|
import { ICodeEditorService } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service";
|
|
16
|
+
import { IUpdateService } from "@codingame/monaco-vscode-api/vscode/vs/platform/update/common/update.service";
|
|
17
|
+
import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
|
|
16
18
|
export declare class ReleaseNotesManager extends Disposable {
|
|
17
19
|
private readonly _environmentService;
|
|
18
20
|
private readonly _keybindingService;
|
|
@@ -27,11 +29,13 @@ export declare class ReleaseNotesManager extends Disposable {
|
|
|
27
29
|
private readonly _extensionService;
|
|
28
30
|
private readonly _productService;
|
|
29
31
|
private readonly _instantiationService;
|
|
32
|
+
private readonly _updateService;
|
|
33
|
+
private readonly _commandService;
|
|
30
34
|
private readonly _simpleSettingRenderer;
|
|
31
35
|
private readonly _releaseNotesCache;
|
|
32
36
|
private _currentReleaseNotes;
|
|
33
37
|
private _lastMeta;
|
|
34
|
-
constructor(_environmentService: IEnvironmentService, _keybindingService: IKeybindingService, _languageService: ILanguageService, _openerService: IOpenerService, _requestService: IRequestService, _configurationService: IConfigurationService, _editorService: IEditorService, _editorGroupService: IEditorGroupsService, _codeEditorService: ICodeEditorService, _webviewWorkbenchService: IWebviewWorkbenchService, _extensionService: IExtensionService, _productService: IProductService, _instantiationService: IInstantiationService);
|
|
38
|
+
constructor(_environmentService: IEnvironmentService, _keybindingService: IKeybindingService, _languageService: ILanguageService, _openerService: IOpenerService, _requestService: IRequestService, _configurationService: IConfigurationService, _editorService: IEditorService, _editorGroupService: IEditorGroupsService, _codeEditorService: ICodeEditorService, _webviewWorkbenchService: IWebviewWorkbenchService, _extensionService: IExtensionService, _productService: IProductService, _instantiationService: IInstantiationService, _updateService: IUpdateService, _commandService: ICommandService);
|
|
35
39
|
private updateHtml;
|
|
36
40
|
private getBase;
|
|
37
41
|
show(version: string, useCurrentFile: boolean): Promise<boolean>;
|
|
@@ -39,6 +43,8 @@ export declare class ReleaseNotesManager extends Disposable {
|
|
|
39
43
|
private onDidClickLink;
|
|
40
44
|
private addGAParameters;
|
|
41
45
|
private renderBody;
|
|
46
|
+
private getUpdateAction;
|
|
47
|
+
private postUpdateAction;
|
|
42
48
|
private onDidChangeConfiguration;
|
|
43
49
|
private onDidChangeActiveWebviewEditor;
|
|
44
50
|
private updateCheckboxWebview;
|