@codingame/monaco-vscode-walkthrough-service-override 24.2.0 → 25.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/welcomeGettingStarted/browser/gettingStarted.contribution.js +20 -20
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +80 -42
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedAccessibleView.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +7 -7
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +37 -37
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService._contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css +43 -0
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +151 -151
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/notebookProfile.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker.js +5 -5
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/media/theme_picker_small.js +4 -4
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/media/walkThroughPart.css +1 -0
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-walkthrough-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "25.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - walkthrough 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": "25.0.0",
|
|
19
19
|
"marked": "14.0.0"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js
CHANGED
|
@@ -37,7 +37,7 @@ registerAction2(class extends Action2 {
|
|
|
37
37
|
constructor() {
|
|
38
38
|
super({
|
|
39
39
|
id: 'workbench.action.openWalkthrough',
|
|
40
|
-
title: ( localize2(
|
|
40
|
+
title: ( localize2(13165, 'Welcome')),
|
|
41
41
|
category: Categories.Help,
|
|
42
42
|
f1: true,
|
|
43
43
|
menu: {
|
|
@@ -46,7 +46,7 @@ registerAction2(class extends Action2 {
|
|
|
46
46
|
order: 1,
|
|
47
47
|
},
|
|
48
48
|
metadata: {
|
|
49
|
-
description: ( localize2(
|
|
49
|
+
description: ( localize2(13166, 'Opens a Walkthrough to help you get started in VS Code.'))
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
}
|
|
@@ -91,15 +91,15 @@ registerAction2(class extends Action2 {
|
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(GettingStartedInput.ID, GettingStartedInputSerializer);
|
|
94
|
-
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(GettingStartedPage, GettingStartedPage.ID, ( localize(
|
|
94
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(GettingStartedPage, GettingStartedPage.ID, ( localize(13167, "Welcome"))), [
|
|
95
95
|
( new SyncDescriptor(GettingStartedInput))
|
|
96
96
|
]);
|
|
97
|
-
const category = ( localize2(
|
|
97
|
+
const category = ( localize2(13167, "Welcome"));
|
|
98
98
|
registerAction2(class extends Action2 {
|
|
99
99
|
constructor() {
|
|
100
100
|
super({
|
|
101
101
|
id: 'welcome.goBack',
|
|
102
|
-
title: ( localize2(
|
|
102
|
+
title: ( localize2(13168, 'Go Back')),
|
|
103
103
|
category,
|
|
104
104
|
keybinding: {
|
|
105
105
|
weight: KeybindingWeight.EditorContrib,
|
|
@@ -135,7 +135,7 @@ registerAction2(class extends Action2 {
|
|
|
135
135
|
constructor() {
|
|
136
136
|
super({
|
|
137
137
|
id: 'welcome.markStepComplete',
|
|
138
|
-
title: ( localize(
|
|
138
|
+
title: ( localize(13169, "Mark Step Complete")),
|
|
139
139
|
category,
|
|
140
140
|
});
|
|
141
141
|
}
|
|
@@ -151,7 +151,7 @@ registerAction2(class extends Action2 {
|
|
|
151
151
|
constructor() {
|
|
152
152
|
super({
|
|
153
153
|
id: 'welcome.markStepIncomplete',
|
|
154
|
-
title: ( localize(
|
|
154
|
+
title: ( localize(13170, "Mark Step Incomplete")),
|
|
155
155
|
category,
|
|
156
156
|
});
|
|
157
157
|
}
|
|
@@ -167,7 +167,7 @@ registerAction2(class extends Action2 {
|
|
|
167
167
|
constructor() {
|
|
168
168
|
super({
|
|
169
169
|
id: 'welcome.showAllWalkthroughs',
|
|
170
|
-
title: ( localize2(
|
|
170
|
+
title: ( localize2(13171, 'Open Walkthrough...')),
|
|
171
171
|
category,
|
|
172
172
|
f1: true,
|
|
173
173
|
menu: {
|
|
@@ -199,7 +199,7 @@ registerAction2(class extends Action2 {
|
|
|
199
199
|
quickPick.canSelectMany = false;
|
|
200
200
|
quickPick.matchOnDescription = true;
|
|
201
201
|
quickPick.matchOnDetail = true;
|
|
202
|
-
quickPick.placeholder = ( localize(
|
|
202
|
+
quickPick.placeholder = ( localize(13172, 'Select a walkthrough to open'));
|
|
203
203
|
quickPick.items = await this.getQuickPickItems(contextService, gettingStartedService);
|
|
204
204
|
quickPick.busy = true;
|
|
205
205
|
disposables.add(quickPick.onDidAccept(() => {
|
|
@@ -226,7 +226,7 @@ CommandsRegistry.registerCommand({
|
|
|
226
226
|
}
|
|
227
227
|
});
|
|
228
228
|
const WorkspacePlatform = ( new RawContextKey('workspacePlatform', undefined, ( localize(
|
|
229
|
-
|
|
229
|
+
13173,
|
|
230
230
|
"The platform of the current workspace, which in remote or serverless contexts may be different from the platform of the UI"
|
|
231
231
|
))));
|
|
232
232
|
let WorkspacePlatformContribution = class WorkspacePlatformContribution {
|
|
@@ -278,7 +278,7 @@ configurationRegistry.registerConfiguration({
|
|
|
278
278
|
type: 'boolean',
|
|
279
279
|
default: true,
|
|
280
280
|
description: ( localize(
|
|
281
|
-
|
|
281
|
+
13174,
|
|
282
282
|
"When enabled, an extension's walkthrough will open upon install of the extension."
|
|
283
283
|
))
|
|
284
284
|
},
|
|
@@ -287,25 +287,25 @@ configurationRegistry.registerConfiguration({
|
|
|
287
287
|
'type': 'string',
|
|
288
288
|
'enum': ['none', 'welcomePage', 'readme', 'newUntitledFile', 'welcomePageInEmptyWorkbench', 'terminal'],
|
|
289
289
|
'enumDescriptions': [
|
|
290
|
-
( localize(
|
|
290
|
+
( localize(13175, "Start without an editor.")),
|
|
291
291
|
( localize(
|
|
292
|
-
|
|
292
|
+
13176,
|
|
293
293
|
"Open the Welcome page, with content to aid in getting started with VS Code and extensions."
|
|
294
294
|
)),
|
|
295
295
|
( localize(
|
|
296
|
-
|
|
296
|
+
13177,
|
|
297
297
|
"Open the README when opening a folder that contains one, fallback to 'welcomePage' otherwise. Note: This is only observed as a global configuration, it will be ignored if set in a workspace or folder configuration."
|
|
298
298
|
)),
|
|
299
299
|
( localize(
|
|
300
|
-
|
|
300
|
+
13178,
|
|
301
301
|
"Open a new untitled text file (only applies when opening an empty window)."
|
|
302
302
|
)),
|
|
303
|
-
( localize(
|
|
304
|
-
( localize(
|
|
303
|
+
( localize(13179, "Open the Welcome page when opening an empty workbench.")),
|
|
304
|
+
( localize(13180, "Open a new terminal in the editor area.")),
|
|
305
305
|
],
|
|
306
306
|
'default': 'welcomePage',
|
|
307
307
|
'description': ( localize(
|
|
308
|
-
|
|
308
|
+
13181,
|
|
309
309
|
"Controls which editor is shown at startup, if none are restored from the previous session."
|
|
310
310
|
))
|
|
311
311
|
},
|
|
@@ -313,8 +313,8 @@ configurationRegistry.registerConfiguration({
|
|
|
313
313
|
scope: ConfigurationScope.APPLICATION,
|
|
314
314
|
type: 'boolean',
|
|
315
315
|
default: false,
|
|
316
|
-
deprecationMessage: ( localize(
|
|
317
|
-
description: ( localize(
|
|
316
|
+
deprecationMessage: ( localize(13182, "Deprecated, use the global `workbench.reduceMotion`.")),
|
|
317
|
+
description: ( localize(13183, "When enabled, reduce motion in welcome page."))
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
});
|
|
@@ -121,6 +121,8 @@ export declare class GettingStartedPage extends EditorPane {
|
|
|
121
121
|
protected createEditor(parent: HTMLElement): void;
|
|
122
122
|
private buildCategoriesSlide;
|
|
123
123
|
private buildRecentlyOpenedList;
|
|
124
|
+
private filterRecentlyOpened;
|
|
125
|
+
private refreshRecentlyOpened;
|
|
124
126
|
private buildStartList;
|
|
125
127
|
private buildGettingStartedWalkthroughsList;
|
|
126
128
|
layout(size: Dimension): void;
|
|
@@ -3,6 +3,7 @@ import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
4
|
import { $, addDisposableListener, clearNode, reset, append, getActiveElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
5
|
import { renderFormattedText } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/formattedTextRenderer';
|
|
6
|
+
import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
6
7
|
import { StandardKeyboardEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/keyboardEvent';
|
|
7
8
|
import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
8
9
|
import { renderLabelWithIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
|
|
@@ -134,7 +135,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
134
135
|
this.container = $('.gettingStartedContainer', {
|
|
135
136
|
role: 'document',
|
|
136
137
|
tabindex: 0,
|
|
137
|
-
'aria-label': ( localize(
|
|
138
|
+
'aria-label': ( localize(13184, "Overview of how to get up to speed with your editor."))
|
|
138
139
|
});
|
|
139
140
|
this.stepMediaComponent = $('.getting-started-media');
|
|
140
141
|
this.stepMediaComponent.id = generateUuid();
|
|
@@ -171,7 +172,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
171
172
|
this.recentlyOpened = this.workspacesService.getRecentlyOpened();
|
|
172
173
|
this._register(workspacesService.onDidChangeRecentlyOpened(() => {
|
|
173
174
|
this.recentlyOpened = workspacesService.getRecentlyOpened();
|
|
174
|
-
|
|
175
|
+
this.refreshRecentlyOpened();
|
|
175
176
|
}));
|
|
176
177
|
this._register(this.gettingStartedService.onDidChangeWalkthrough(category => {
|
|
177
178
|
const ourCategory = this.gettingStartedCategories.find(c => c.id === category.id);
|
|
@@ -210,16 +211,19 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
210
211
|
badgeelement.parentElement?.setAttribute('aria-checked', 'true');
|
|
211
212
|
badgeelement.classList.remove(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
212
213
|
badgeelement.classList.add('complete', ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
213
|
-
badgeelement.setAttribute('aria-label', ( localize(
|
|
214
|
+
badgeelement.setAttribute('aria-label', ( localize(13185, "Checkbox for Step {0}: Completed", step.title)));
|
|
214
215
|
}
|
|
215
216
|
else {
|
|
216
217
|
badgeelement.setAttribute('aria-checked', 'false');
|
|
217
218
|
badgeelement.parentElement?.setAttribute('aria-checked', 'false');
|
|
218
219
|
badgeelement.classList.remove('complete', ...ThemeIcon.asClassNameArray(gettingStartedCheckedCodicon));
|
|
219
220
|
badgeelement.classList.add(...ThemeIcon.asClassNameArray(gettingStartedUncheckedCodicon));
|
|
220
|
-
badgeelement.setAttribute('aria-label', ( localize(
|
|
221
|
+
badgeelement.setAttribute('aria-label', ( localize(13186, "Checkbox for Step {0}: Not completed", step.title)));
|
|
221
222
|
}
|
|
222
223
|
});
|
|
224
|
+
if (step.done) {
|
|
225
|
+
status(( localize(13187, "Step {0} completed", step.title)));
|
|
226
|
+
}
|
|
223
227
|
}
|
|
224
228
|
this.updateCategoryProgress();
|
|
225
229
|
}));
|
|
@@ -438,7 +442,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
438
442
|
label: x.title,
|
|
439
443
|
detail: x.description,
|
|
440
444
|
description: x.source,
|
|
441
|
-
}))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(
|
|
445
|
+
}))), { canPickMany: false, matchOnDescription: true, matchOnDetail: true, title: ( localize(13188, "Open Walkthrough...")) });
|
|
442
446
|
if (selection) {
|
|
443
447
|
this.runDispatchCommand('selectCategory', selection.id);
|
|
444
448
|
}
|
|
@@ -620,7 +624,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
620
624
|
const themeType = this.themeService.getColorTheme().type;
|
|
621
625
|
const videoPath = media.path[themeType];
|
|
622
626
|
const videoPoster = media.poster ? media.poster[themeType] : undefined;
|
|
623
|
-
const altText = media.altText ? media.altText : ( localize(
|
|
627
|
+
const altText = media.altText ? media.altText : ( localize(13189, "Video for {0}", stepToExpand.title));
|
|
624
628
|
const rawHTML = await this.detailsRenderer.renderVideo(videoPath, videoPoster, altText);
|
|
625
629
|
this.webview.setHtml(rawHTML);
|
|
626
630
|
let isDisposed = false;
|
|
@@ -651,8 +655,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
651
655
|
provideScreenReaderUpdate() {
|
|
652
656
|
if (this.configurationService.getValue(AccessibilityVerbositySettingId.Walkthrough)) {
|
|
653
657
|
const kbLabel = this.keybindingService.lookupKeybinding(AccessibleViewAction.id)?.getAriaLabel();
|
|
654
|
-
return kbLabel ? ( localize(
|
|
655
|
-
|
|
658
|
+
return kbLabel ? ( localize(13190, "Inspect this in the accessible view ({0}).\n", kbLabel)) : ( localize(
|
|
659
|
+
13191,
|
|
656
660
|
"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\n"
|
|
657
661
|
));
|
|
658
662
|
}
|
|
@@ -715,7 +719,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
715
719
|
this.categoriesPageScrollbar.dispose();
|
|
716
720
|
}
|
|
717
721
|
this.categoriesSlide = $('.gettingStartedSlideCategories.gettingStartedSlide');
|
|
718
|
-
const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(
|
|
722
|
+
const prevButton = $('button.prev-button.button-link', { 'x-dispatch': 'scrollPrev' }, $('span.scroll-button.codicon.codicon-chevron-left'), $('span.moreText', {}, ( localize(13192, "Go Back"))));
|
|
719
723
|
this.stepsSlide = $('.gettingStartedSlideDetails.gettingStartedSlide', {}, prevButton);
|
|
720
724
|
this.stepsContent = $('.gettingStartedDetailsContent', {});
|
|
721
725
|
this.detailsPageScrollbar = this._register(( new DomScrollableElement(
|
|
@@ -739,11 +743,11 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
739
743
|
icon: Codicon.check,
|
|
740
744
|
actionClassName: 'getting-started-checkbox',
|
|
741
745
|
isChecked: this.configurationService.getValue(configurationKey) === 'welcomePage',
|
|
742
|
-
title: ( localize(
|
|
746
|
+
title: ( localize(13193, "When checked, this page will be shown on startup.")),
|
|
743
747
|
...defaultToggleStyles
|
|
744
748
|
}));
|
|
745
749
|
showOnStartupCheckbox.domNode.id = 'showOnStartup';
|
|
746
|
-
const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(
|
|
750
|
+
const showOnStartupLabel = $('label.caption', { for: 'showOnStartup' }, ( localize(13194, "Show welcome page on startup")));
|
|
747
751
|
const onShowOnStartupChanged = () => {
|
|
748
752
|
if (showOnStartupCheckbox.checked) {
|
|
749
753
|
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'showOnStartupChecked', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
|
|
@@ -762,7 +766,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
762
766
|
showOnStartupCheckbox.checked = !showOnStartupCheckbox.checked;
|
|
763
767
|
onShowOnStartupChanged();
|
|
764
768
|
}));
|
|
765
|
-
const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(
|
|
769
|
+
const header = $('.header', {}, $('h1.product-name.caption', {}, this.productService.nameLong), $('p.subtitle.description', {}, ( localize(13195, "Editing evolved"))));
|
|
766
770
|
const leftColumn = $('.categories-column.categories-column-left', {});
|
|
767
771
|
const rightColumn = $('.categories-column.categories-column-right', {});
|
|
768
772
|
const startList = this.buildStartList();
|
|
@@ -843,20 +847,23 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
843
847
|
const renderRecent = (recent) => {
|
|
844
848
|
let fullPath;
|
|
845
849
|
let windowOpenable;
|
|
850
|
+
let resourceUri;
|
|
846
851
|
if (isRecentFolder(recent)) {
|
|
847
852
|
windowOpenable = { folderUri: recent.folderUri };
|
|
848
853
|
fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.folderUri, { verbose: Verbosity.LONG });
|
|
854
|
+
resourceUri = recent.folderUri;
|
|
849
855
|
}
|
|
850
856
|
else {
|
|
851
857
|
fullPath = recent.label || this.labelService.getWorkspaceLabel(recent.workspace, { verbose: Verbosity.LONG });
|
|
852
858
|
windowOpenable = { workspaceUri: recent.workspace.configPath };
|
|
859
|
+
resourceUri = recent.workspace.configPath;
|
|
853
860
|
}
|
|
854
861
|
const { name, parentPath } = splitRecentLabel(fullPath);
|
|
855
862
|
const li = $('li');
|
|
856
863
|
const link = $('button.button-link');
|
|
857
864
|
link.innerText = name;
|
|
858
865
|
link.title = fullPath;
|
|
859
|
-
link.setAttribute('aria-label', ( localize(
|
|
866
|
+
link.setAttribute('aria-label', ( localize(13196, "Open folder {0} with path {1}", name, parentPath)));
|
|
860
867
|
link.addEventListener('click', e => {
|
|
861
868
|
this.telemetryService.publicLog2('gettingStarted.ActionExecuted', { command: 'openRecent', argument: undefined, walkthroughId: this.currentWalkthrough?.id });
|
|
862
869
|
this.hostService.openWindow([windowOpenable], {
|
|
@@ -873,34 +880,49 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
873
880
|
span.innerText = parentPath;
|
|
874
881
|
span.title = fullPath;
|
|
875
882
|
li.appendChild(span);
|
|
883
|
+
const deleteButton = $('a.codicon.codicon-close.hide-category-button.recently-opened-delete-button', {
|
|
884
|
+
'tabindex': 0,
|
|
885
|
+
'role': 'button',
|
|
886
|
+
'title': ( localize(13197, "Remove from Recently Opened")),
|
|
887
|
+
'aria-label': ( localize(13198, "Remove {0} from Recently Opened", name)),
|
|
888
|
+
});
|
|
889
|
+
const handleDelete = async (e) => {
|
|
890
|
+
e.preventDefault();
|
|
891
|
+
e.stopPropagation();
|
|
892
|
+
await this.workspacesService.removeRecentlyOpened([resourceUri]);
|
|
893
|
+
};
|
|
894
|
+
deleteButton.addEventListener('click', handleDelete);
|
|
895
|
+
deleteButton.addEventListener('keydown', async (e) => {
|
|
896
|
+
const event = ( new StandardKeyboardEvent(e));
|
|
897
|
+
if (event.keyCode === KeyCode.Enter || event.keyCode === KeyCode.Space) {
|
|
898
|
+
await handleDelete(e);
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
li.appendChild(deleteButton);
|
|
876
902
|
return li;
|
|
877
903
|
};
|
|
878
904
|
if (this.recentlyOpenedList) {
|
|
879
905
|
this.recentlyOpenedList.dispose();
|
|
880
906
|
}
|
|
881
907
|
const recentlyOpenedList = this.recentlyOpenedList = ( new GettingStartedIndexList({
|
|
882
|
-
title: ( localize(
|
|
908
|
+
title: ( localize(13199, "Recent")),
|
|
883
909
|
klass: 'recently-opened',
|
|
884
910
|
limit: 5,
|
|
885
|
-
empty: $('.empty-recent', {}, ( localize(
|
|
911
|
+
empty: $('.empty-recent', {}, ( localize(13200, "You have no recent folders,")), $('button.button-link', { 'x-dispatch': 'openFolder' }, ( localize(13201, "open a folder"))), ( localize(13202, "to start."))),
|
|
886
912
|
more: $('.more', {}, $('button.button-link', {
|
|
887
913
|
'x-dispatch': 'showMoreRecents',
|
|
888
914
|
title: ( localize(
|
|
889
|
-
|
|
915
|
+
13203,
|
|
890
916
|
"Show All Recent Folders {0}",
|
|
891
917
|
this.getKeybindingLabel(OpenRecentAction.ID)
|
|
892
918
|
))
|
|
893
|
-
}, ( localize(
|
|
919
|
+
}, ( localize(13204, "More...")))),
|
|
894
920
|
renderElement: renderRecent,
|
|
895
921
|
contextService: this.contextService
|
|
896
922
|
}));
|
|
897
923
|
recentlyOpenedList.onDidChange(() => this.registerDispatchListeners());
|
|
898
924
|
this.recentlyOpened.then(({ workspaces }) => {
|
|
899
|
-
const workspacesWithID = (
|
|
900
|
-
.filter(recent => !this.workspaceContextService.isCurrentWorkspace(isRecentWorkspace(recent) ? recent.workspace : recent.folderUri))
|
|
901
|
-
.map(
|
|
902
|
-
recent => ({ ...recent, id: isRecentWorkspace(recent) ? recent.workspace.id : ( recent.folderUri.toString()) })
|
|
903
|
-
));
|
|
925
|
+
const workspacesWithID = this.filterRecentlyOpened(workspaces);
|
|
904
926
|
const updateEntries = () => {
|
|
905
927
|
recentlyOpenedList.setEntries(workspacesWithID);
|
|
906
928
|
};
|
|
@@ -909,6 +931,22 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
909
931
|
}).catch(onUnexpectedError);
|
|
910
932
|
return recentlyOpenedList;
|
|
911
933
|
}
|
|
934
|
+
filterRecentlyOpened(workspaces) {
|
|
935
|
+
return ( workspaces
|
|
936
|
+
.filter(recent => !this.workspaceContextService.isCurrentWorkspace(isRecentWorkspace(recent) ? recent.workspace : recent.folderUri))
|
|
937
|
+
.map(
|
|
938
|
+
recent => ({ ...recent, id: isRecentWorkspace(recent) ? recent.workspace.id : ( recent.folderUri.toString()) })
|
|
939
|
+
));
|
|
940
|
+
}
|
|
941
|
+
refreshRecentlyOpened() {
|
|
942
|
+
if (!this.recentlyOpenedList) {
|
|
943
|
+
return;
|
|
944
|
+
}
|
|
945
|
+
this.recentlyOpened.then(({ workspaces }) => {
|
|
946
|
+
const workspacesWithID = this.filterRecentlyOpened(workspaces);
|
|
947
|
+
this.recentlyOpenedList?.setEntries(workspacesWithID);
|
|
948
|
+
}).catch(onUnexpectedError);
|
|
949
|
+
}
|
|
912
950
|
buildStartList() {
|
|
913
951
|
const renderStartEntry = (entry) => $('li', {}, $('button.button-link', {
|
|
914
952
|
'x-dispatch': 'selectStartEntry:' + entry.id,
|
|
@@ -918,7 +956,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
918
956
|
this.startList.dispose();
|
|
919
957
|
}
|
|
920
958
|
const startList = this.startList = ( new GettingStartedIndexList({
|
|
921
|
-
title: ( localize(
|
|
959
|
+
title: ( localize(13205, "Start")),
|
|
922
960
|
klass: 'start-container',
|
|
923
961
|
limit: 10,
|
|
924
962
|
renderElement: renderStartEntry,
|
|
@@ -934,10 +972,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
934
972
|
const renderNewBadge = (category.newItems || category.newEntry) && !category.isFeatured;
|
|
935
973
|
const newBadge = $('.new-badge', {});
|
|
936
974
|
if (category.newEntry) {
|
|
937
|
-
reset(newBadge, $('.new-category', {}, ( localize(
|
|
975
|
+
reset(newBadge, $('.new-category', {}, ( localize(13206, "New"))));
|
|
938
976
|
}
|
|
939
977
|
else if (category.newItems) {
|
|
940
|
-
reset(newBadge, $('.new-items', {}, ( localize(
|
|
978
|
+
reset(newBadge, $('.new-items', {}, ( localize(13207, "Updated"))));
|
|
941
979
|
}
|
|
942
980
|
const featuredBadge = $('.featured-badge', {});
|
|
943
981
|
const descriptionContent = $('.description-content', {});
|
|
@@ -953,9 +991,9 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
953
991
|
}, featuredBadge, $('.main-content', {}, this.iconWidgetFor(category), titleContent, renderNewBadge ? newBadge : $('.no-badge'), $('a.codicon.codicon-close.hide-category-button', {
|
|
954
992
|
'tabindex': 0,
|
|
955
993
|
'x-dispatch': 'hideCategory:' + category.id,
|
|
956
|
-
'title': ( localize(
|
|
994
|
+
'title': ( localize(13208, "Hide")),
|
|
957
995
|
'role': 'button',
|
|
958
|
-
'aria-label': ( localize(
|
|
996
|
+
'aria-label': ( localize(13209, "Hide")),
|
|
959
997
|
})), descriptionContent, $('.category-progress', { 'x-data-category-id': category.id, }, $('.progress-bar-outer', { 'role': 'progressbar' }, $('.progress-bar-inner'))));
|
|
960
998
|
};
|
|
961
999
|
if (this.gettingStartedList) {
|
|
@@ -981,10 +1019,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
981
1019
|
return rank;
|
|
982
1020
|
};
|
|
983
1021
|
const gettingStartedList = this.gettingStartedList = ( new GettingStartedIndexList({
|
|
984
|
-
title: ( localize(
|
|
1022
|
+
title: ( localize(13210, "Walkthroughs")),
|
|
985
1023
|
klass: 'getting-started',
|
|
986
1024
|
limit: 5,
|
|
987
|
-
footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(
|
|
1025
|
+
footer: $('span.button-link.see-all-walkthroughs', { 'x-dispatch': 'seeAllWalkthroughs', 'tabindex': 0 }, ( localize(13204, "More..."))),
|
|
988
1026
|
renderElement: renderGetttingStaredWalkthrough,
|
|
989
1027
|
rankElement: rankWalkthrough,
|
|
990
1028
|
contextService: this.contextService,
|
|
@@ -1037,10 +1075,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1037
1075
|
bar.style.width = `${progress}%`;
|
|
1038
1076
|
element.parentElement.classList.toggle('no-progress', stats.stepsComplete === 0);
|
|
1039
1077
|
if (stats.stepsTotal === stats.stepsComplete) {
|
|
1040
|
-
bar.title = ( localize(
|
|
1078
|
+
bar.title = ( localize(13211, "All {0} steps complete!", stats.stepsComplete));
|
|
1041
1079
|
}
|
|
1042
1080
|
else {
|
|
1043
|
-
bar.title = ( localize(
|
|
1081
|
+
bar.title = ( localize(13212, "{0} of {1} steps complete", stats.stepsComplete, stats.stepsTotal));
|
|
1044
1082
|
}
|
|
1045
1083
|
});
|
|
1046
1084
|
}
|
|
@@ -1164,7 +1202,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1164
1202
|
if (isCommand) {
|
|
1165
1203
|
const keybinding = this.getKeyBinding(command);
|
|
1166
1204
|
if (keybinding) {
|
|
1167
|
-
const shortcutMessage = $('span.shortcut-message', {}, ( localize(
|
|
1205
|
+
const shortcutMessage = $('span.shortcut-message', {}, ( localize(13213, 'Tip: Use keyboard shortcut ')));
|
|
1168
1206
|
container.appendChild(shortcutMessage);
|
|
1169
1207
|
const label = ( new KeybindingLabel(shortcutMessage, OS, { ...defaultKeybindingLabelStyles }));
|
|
1170
1208
|
label.set(keybinding);
|
|
@@ -1255,8 +1293,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1255
1293
|
'role': 'checkbox',
|
|
1256
1294
|
'aria-checked': step.done ? 'true' : 'false',
|
|
1257
1295
|
'aria-label': step.done
|
|
1258
|
-
? ( localize(
|
|
1259
|
-
: ( localize(
|
|
1296
|
+
? ( localize(13185, "Checkbox for Step {0}: Completed", step.title))
|
|
1297
|
+
: ( localize(13186, "Checkbox for Step {0}: Not completed", step.title)),
|
|
1260
1298
|
});
|
|
1261
1299
|
const container = $('.step-description-container', { 'x-step-description-for': step.id });
|
|
1262
1300
|
this.buildMarkdownDescription(container, step.description);
|
|
@@ -1264,10 +1302,10 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1264
1302
|
reset(stepTitle, ...renderLabelWithIcons(step.title));
|
|
1265
1303
|
const stepDescription = $('.step-container', {}, stepTitle, container);
|
|
1266
1304
|
if (step.media.type === 'image') {
|
|
1267
|
-
stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(
|
|
1305
|
+
stepDescription.appendChild($('.image-description', { 'aria-label': ( localize(13214, "Image showing {0}", step.media.altText)) }));
|
|
1268
1306
|
}
|
|
1269
1307
|
else if (step.media.type === 'video') {
|
|
1270
|
-
stepDescription.appendChild($('.video-description', { 'aria-label': ( localize(
|
|
1308
|
+
stepDescription.appendChild($('.video-description', { 'aria-label': ( localize(13215, "Video showing {0}", step.media.altText)) }));
|
|
1271
1309
|
}
|
|
1272
1310
|
return $('button.getting-started-step', {
|
|
1273
1311
|
'x-dispatch': 'selectTask:' + step.id,
|
|
@@ -1287,8 +1325,8 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1287
1325
|
}
|
|
1288
1326
|
}));
|
|
1289
1327
|
const showNextCategory = this.gettingStartedCategories.find(_category => _category.id === category.next);
|
|
1290
|
-
const stepsContainer = $('.getting-started-detail-container', { 'role': 'list' }, stepListContainer, $('.done-next-container', {}, $('button.button-link.all-done', { 'x-dispatch': 'allDone' }, $('span.codicon.codicon-check-all'), ( localize(
|
|
1291
|
-
? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(
|
|
1328
|
+
const stepsContainer = $('.getting-started-detail-container', { 'role': 'list' }, stepListContainer, $('.done-next-container', {}, $('button.button-link.all-done', { 'x-dispatch': 'allDone' }, $('span.codicon.codicon-check-all'), ( localize(13216, "Mark Done"))), ...(showNextCategory
|
|
1329
|
+
? [$('button.button-link.next', { 'x-dispatch': 'nextSection' }, ( localize(13217, "Next Section")), $('span.codicon.codicon-arrow-right'))]
|
|
1292
1330
|
: [])));
|
|
1293
1331
|
this.detailsScrollbar = this._register(( new DomScrollableElement(stepsContainer, { className: 'steps-container' })));
|
|
1294
1332
|
const stepListComponent = this.detailsScrollbar.getDomNode();
|
|
@@ -1304,12 +1342,12 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1304
1342
|
this.registerDispatchListeners();
|
|
1305
1343
|
}
|
|
1306
1344
|
buildTelemetryFooter(parent) {
|
|
1307
|
-
const privacyStatementCopy = ( localize(
|
|
1345
|
+
const privacyStatementCopy = ( localize(13218, "privacy statement"));
|
|
1308
1346
|
const privacyStatementButton = `[${privacyStatementCopy}](command:workbench.action.openPrivacyStatementUrl)`;
|
|
1309
|
-
const optOutCopy = ( localize(
|
|
1347
|
+
const optOutCopy = ( localize(13219, "opt out"));
|
|
1310
1348
|
const optOutButton = `[${optOutCopy}](command:settings.filterByTelemetry)`;
|
|
1311
1349
|
const text = ( localize(
|
|
1312
|
-
|
|
1350
|
+
13220,
|
|
1313
1351
|
"{0} collects usage data. Read our {1} and learn how to {2}.",
|
|
1314
1352
|
this.productService.nameShort,
|
|
1315
1353
|
privacyStatementButton,
|
|
@@ -1383,7 +1421,7 @@ let GettingStartedPage = class GettingStartedPage extends EditorPane {
|
|
|
1383
1421
|
const prevButton = this.container.querySelector('.prev-button.button-link');
|
|
1384
1422
|
prevButton.style.display = this.editorInput?.showWelcome || this.prevWalkthrough ? 'block' : 'none';
|
|
1385
1423
|
const moreTextElement = prevButton.querySelector('.moreText');
|
|
1386
|
-
moreTextElement.textContent = firstLaunch ? ( localize(
|
|
1424
|
+
moreTextElement.textContent = firstLaunch ? ( localize(13221, "Welcome")) : ( localize(13192, "Go Back"));
|
|
1387
1425
|
this.container.querySelector('.gettingStartedSlideDetails').querySelectorAll('button').forEach(button => button.disabled = false);
|
|
1388
1426
|
this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('button').forEach(button => button.disabled = true);
|
|
1389
1427
|
this.container.querySelector('.gettingStartedSlideCategories').querySelectorAll('input').forEach(button => button.disabled = true);
|
|
@@ -116,11 +116,11 @@ class GettingStartedAccessibleProvider extends Disposable {
|
|
|
116
116
|
}
|
|
117
117
|
_getContent(waltkrough, step, includeTitle) {
|
|
118
118
|
const description = ( step.description.map(lt => lt.nodes.filter(node => typeof node === 'string'))).join('\n');
|
|
119
|
-
const stepsContent = ( localize(
|
|
119
|
+
const stepsContent = ( localize(13222, '{0}\n{1}', step.title, description));
|
|
120
120
|
if (includeTitle) {
|
|
121
121
|
return [
|
|
122
|
-
( localize(
|
|
123
|
-
( localize(
|
|
122
|
+
( localize(13223, 'Title: {0}', waltkrough.title)),
|
|
123
|
+
( localize(13224, 'Description: {0}', waltkrough.description)),
|
|
124
124
|
stepsContent
|
|
125
125
|
].join('\n');
|
|
126
126
|
}
|
package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js
CHANGED
|
@@ -12,10 +12,10 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quic
|
|
|
12
12
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
13
13
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
14
14
|
|
|
15
|
-
registerColor('welcomePage.background', null, ( localize(
|
|
16
|
-
registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(
|
|
17
|
-
registerColor('welcomePage.tileHoverBackground', { dark: ( lighten(editorWidgetBackground, .2)), light: ( darken(editorWidgetBackground, .1)), hcDark: null, hcLight: null }, ( localize(
|
|
18
|
-
registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(
|
|
19
|
-
registerColor('welcomePage.progress.background', inputBackground, ( localize(
|
|
20
|
-
registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(
|
|
21
|
-
registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(
|
|
15
|
+
registerColor('welcomePage.background', null, ( localize(13225, 'Background color for the Welcome page.')));
|
|
16
|
+
registerColor('welcomePage.tileBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: '#000', hcLight: editorWidgetBackground }, ( localize(13226, 'Background color for the tiles on the Welcome page.')));
|
|
17
|
+
registerColor('welcomePage.tileHoverBackground', { dark: ( lighten(editorWidgetBackground, .2)), light: ( darken(editorWidgetBackground, .1)), hcDark: null, hcLight: null }, ( localize(13227, 'Hover background color for the tiles on the Welcome.')));
|
|
18
|
+
registerColor('welcomePage.tileBorder', { dark: '#ffffff1a', light: '#0000001a', hcDark: contrastBorder, hcLight: contrastBorder }, ( localize(13228, 'Border color for the tiles on the Welcome page.')));
|
|
19
|
+
registerColor('welcomePage.progress.background', inputBackground, ( localize(13229, 'Foreground color for the Welcome page progress bars.')));
|
|
20
|
+
registerColor('welcomePage.progress.foreground', textLinkForeground, ( localize(13230, 'Background color for the Welcome page progress bars.')));
|
|
21
|
+
registerColor('walkthrough.stepTitle.foreground', { light: '#000000', dark: '#ffffff', hcDark: null, hcLight: null }, ( localize(13231, 'Foreground color of the heading of each walkthrough step')));
|