@codingame/monaco-vscode-welcome-service-override 32.0.0 → 32.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/onboardingVariationA.js +60 -60
- package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/welcomeOnboarding.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/newFile.contribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeContribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeExtensionPoint.js +8 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-welcome-service-override",
|
|
3
|
-
"version": "32.0.
|
|
3
|
+
"version": "32.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - welcome service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "32.0.
|
|
18
|
+
"@codingame/monaco-vscode-api": "32.0.1"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -108,11 +108,11 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
108
108
|
this.overlay = append(container, $(".onboarding-a-overlay"));
|
|
109
109
|
this.overlay.setAttribute("role", "dialog");
|
|
110
110
|
this.overlay.setAttribute("aria-modal", "true");
|
|
111
|
-
this.overlay.setAttribute("aria-label", ( localize(
|
|
111
|
+
this.overlay.setAttribute("aria-label", ( localize(15964, "Welcome to Visual Studio Code")));
|
|
112
112
|
this.card = append(this.overlay, $(".onboarding-a-card"));
|
|
113
113
|
this.closeButton = append(this.card, $("button.onboarding-a-close-btn"));
|
|
114
114
|
this.closeButton.type = "button";
|
|
115
|
-
this.closeButton.setAttribute("aria-label", ( localize(
|
|
115
|
+
this.closeButton.setAttribute("aria-label", ( localize(15965, "Close")));
|
|
116
116
|
this.closeButton.appendChild(renderIcon(Codicon.close));
|
|
117
117
|
const header = append(this.card, $(".onboarding-a-header"));
|
|
118
118
|
this.progressContainer = append(header, $(".onboarding-a-progress"));
|
|
@@ -128,7 +128,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
128
128
|
this.footerLeft = append(footer, $(".onboarding-a-footer-left"));
|
|
129
129
|
const footerRight = append(footer, $(".onboarding-a-footer-right"));
|
|
130
130
|
this.backButton = append(footerRight, $("button.onboarding-a-btn.onboarding-a-btn-secondary"));
|
|
131
|
-
this.backButton.textContent = ( localize(
|
|
131
|
+
this.backButton.textContent = ( localize(15966, "Back"));
|
|
132
132
|
this.backButton.type = "button";
|
|
133
133
|
this.footerFocusableElements.push(this.backButton);
|
|
134
134
|
this.nextButton = append(footerRight, $("button.onboarding-a-btn.onboarding-a-btn-primary"));
|
|
@@ -244,7 +244,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
this.progressContainer.appendChild(this.stepLabelEl);
|
|
247
|
-
this.stepLabelEl.textContent = ( localize(
|
|
247
|
+
this.stepLabelEl.textContent = ( localize(15967, "{0} of {1}", this.currentStepIndex + 1, this.steps.length));
|
|
248
248
|
}
|
|
249
249
|
_renderStep() {
|
|
250
250
|
if (!this.titleEl || !this.subtitleEl || !this.contentEl) {
|
|
@@ -280,7 +280,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
280
280
|
break;
|
|
281
281
|
}
|
|
282
282
|
this.bodyEl?.setAttribute("aria-label", ( localize(
|
|
283
|
-
|
|
283
|
+
15968,
|
|
284
284
|
"Step {0} of {1}: {2}",
|
|
285
285
|
this.currentStepIndex + 1,
|
|
286
286
|
this.steps.length,
|
|
@@ -294,13 +294,13 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
294
294
|
if (this.nextButton) {
|
|
295
295
|
if (this.currentStepIndex === 0) {
|
|
296
296
|
this.nextButton.className = "onboarding-a-btn onboarding-a-btn-secondary";
|
|
297
|
-
this.nextButton.textContent = ( localize(
|
|
297
|
+
this.nextButton.textContent = ( localize(15969, "Continue without Signing In"));
|
|
298
298
|
} else if (this._isLastStep()) {
|
|
299
299
|
this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
|
|
300
|
-
this.nextButton.textContent = ( localize(
|
|
300
|
+
this.nextButton.textContent = ( localize(15970, "Get Started"));
|
|
301
301
|
} else {
|
|
302
302
|
this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
|
|
303
|
-
this.nextButton.textContent = ( localize(
|
|
303
|
+
this.nextButton.textContent = ( localize(15971, "Continue"));
|
|
304
304
|
}
|
|
305
305
|
}
|
|
306
306
|
if (this.footerLeft) {
|
|
@@ -308,7 +308,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
308
308
|
if (!this._footerSignInBtn && !this._userSignedIn) {
|
|
309
309
|
this._footerSignInBtn = append(this.footerLeft, $("button.onboarding-a-signin-nudge-btn"));
|
|
310
310
|
this._footerSignInBtn.type = "button";
|
|
311
|
-
this._footerSignInBtn.textContent = ( localize(
|
|
311
|
+
this._footerSignInBtn.textContent = ( localize(15972, "Sign in for AI Powered Features"));
|
|
312
312
|
this.stepDisposables.add(
|
|
313
313
|
addDisposableListener(this._footerSignInBtn, EventType.CLICK, async () => {
|
|
314
314
|
this._logAction("signInNudge");
|
|
@@ -336,37 +336,37 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
336
336
|
const content = append(wrapper, $(".onboarding-a-signin-content"));
|
|
337
337
|
const contentMain = append(content, $(".onboarding-a-signin-content-main"));
|
|
338
338
|
const title = append(contentMain, $("h2.onboarding-a-signin-title"));
|
|
339
|
-
title.textContent = ( localize(
|
|
339
|
+
title.textContent = ( localize(15973, "Welcome to VS Code"));
|
|
340
340
|
const subtitle = append(contentMain, $("p.onboarding-a-signin-subtitle"));
|
|
341
|
-
subtitle.textContent = ( localize(
|
|
341
|
+
subtitle.textContent = ( localize(15974, "Sign in to continue with AI-powered development."));
|
|
342
342
|
const actions = append(contentMain, $(".onboarding-a-signin-actions"));
|
|
343
|
-
const githubBtn = this._registerStepFocusable(this._createSignInButton(actions, "github", ( localize(
|
|
343
|
+
const githubBtn = this._registerStepFocusable(this._createSignInButton(actions, "github", ( localize(15975, "Continue with GitHub")), {
|
|
344
344
|
emphasized: true,
|
|
345
|
-
label: ( localize(
|
|
345
|
+
label: ( localize(15976, "Continue with GitHub"))
|
|
346
346
|
}));
|
|
347
347
|
this.stepDisposables.add(addDisposableListener(githubBtn, EventType.CLICK, () => {
|
|
348
348
|
this._logAction("signIn", undefined, "github");
|
|
349
349
|
this._handleSignIn();
|
|
350
350
|
}));
|
|
351
|
-
const googleBtn = this._registerStepFocusable(this._createSignInButton(actions, "google", ( localize(
|
|
351
|
+
const googleBtn = this._registerStepFocusable(this._createSignInButton(actions, "google", ( localize(15977, "Continue with Google")), {
|
|
352
352
|
iconOnly: true,
|
|
353
|
-
label: ( localize(
|
|
353
|
+
label: ( localize(15977, "Continue with Google"))
|
|
354
354
|
}));
|
|
355
355
|
this.stepDisposables.add(addDisposableListener(googleBtn, EventType.CLICK, () => {
|
|
356
356
|
this._logAction("signIn", undefined, "google");
|
|
357
357
|
this._handleSignIn("google");
|
|
358
358
|
}));
|
|
359
|
-
const appleBtn = this._registerStepFocusable(this._createSignInButton(actions, "apple", ( localize(
|
|
359
|
+
const appleBtn = this._registerStepFocusable(this._createSignInButton(actions, "apple", ( localize(15978, "Continue with Apple")), {
|
|
360
360
|
iconOnly: true,
|
|
361
|
-
label: ( localize(
|
|
361
|
+
label: ( localize(15978, "Continue with Apple"))
|
|
362
362
|
}));
|
|
363
363
|
this.stepDisposables.add(addDisposableListener(appleBtn, EventType.CLICK, () => {
|
|
364
364
|
this._logAction("signIn", undefined, "apple");
|
|
365
365
|
this._handleSignIn("apple");
|
|
366
366
|
}));
|
|
367
|
-
const gheBtn = this._registerStepFocusable(this._createSignInButton(actions, "github-enterprise", ( localize(
|
|
367
|
+
const gheBtn = this._registerStepFocusable(this._createSignInButton(actions, "github-enterprise", ( localize(15979, "GHE")), {
|
|
368
368
|
textOnly: true,
|
|
369
|
-
label: ( localize(
|
|
369
|
+
label: ( localize(15980, "Continue with GitHub Enterprise"))
|
|
370
370
|
}));
|
|
371
371
|
this.stepDisposables.add(addDisposableListener(gheBtn, EventType.CLICK, () => {
|
|
372
372
|
this._logAction("signIn", undefined, "github-enterprise");
|
|
@@ -376,20 +376,20 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
376
376
|
const disclaimerCol = append(footer, $(".onboarding-a-signin-disclaimer-col"));
|
|
377
377
|
const copilotDisclaimer = append(disclaimerCol, $(".onboarding-a-signin-disclaimer"));
|
|
378
378
|
copilotDisclaimer.append(( localize(
|
|
379
|
-
|
|
379
|
+
15981,
|
|
380
380
|
"By signing in, you agree to {0}'s ",
|
|
381
381
|
defaultChat.provider.default.name
|
|
382
382
|
)));
|
|
383
|
-
this._createInlineLink(copilotDisclaimer, ( localize(
|
|
384
|
-
copilotDisclaimer.append(( localize(
|
|
385
|
-
this._createInlineLink(copilotDisclaimer, ( localize(
|
|
386
|
-
copilotDisclaimer.append(( localize(
|
|
387
|
-
this._createInlineLink(copilotDisclaimer, ( localize(
|
|
388
|
-
copilotDisclaimer.append(( localize(
|
|
383
|
+
this._createInlineLink(copilotDisclaimer, ( localize(15982, "Terms")), defaultChat.termsStatementUrl);
|
|
384
|
+
copilotDisclaimer.append(( localize(15983, " and ")));
|
|
385
|
+
this._createInlineLink(copilotDisclaimer, ( localize(15984, "Privacy Statement")), defaultChat.privacyStatementUrl);
|
|
386
|
+
copilotDisclaimer.append(( localize(15985, ". {0} Copilot may show ", defaultChat.provider.default.name)));
|
|
387
|
+
this._createInlineLink(copilotDisclaimer, ( localize(15986, "public code")), defaultChat.publicCodeMatchesUrl);
|
|
388
|
+
copilotDisclaimer.append(( localize(15987, " suggestions and use your data to improve the product.")));
|
|
389
389
|
copilotDisclaimer.append(" ");
|
|
390
|
-
copilotDisclaimer.append(( localize(
|
|
391
|
-
this._createInlineLink(copilotDisclaimer, ( localize(
|
|
392
|
-
copilotDisclaimer.append(( localize(
|
|
390
|
+
copilotDisclaimer.append(( localize(15988, "You can change these ")));
|
|
391
|
+
this._createInlineLink(copilotDisclaimer, ( localize(15989, "settings")), defaultChat.manageSettingsUrl);
|
|
392
|
+
copilotDisclaimer.append(( localize(15990, " anytime.")));
|
|
393
393
|
}
|
|
394
394
|
_createSignInButton(parent, providerClass, label, options) {
|
|
395
395
|
const isCompact = options?.iconOnly || options?.textOnly;
|
|
@@ -458,7 +458,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
458
458
|
});
|
|
459
459
|
this.notificationService.notify({
|
|
460
460
|
severity: Severity.Error,
|
|
461
|
-
message: ( localize(
|
|
461
|
+
message: ( localize(15991, "Sign-in failed. You can try again later from the Accounts menu."))
|
|
462
462
|
});
|
|
463
463
|
}
|
|
464
464
|
}
|
|
@@ -508,7 +508,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
508
508
|
this.notificationService.notify({
|
|
509
509
|
severity: Severity.Error,
|
|
510
510
|
message: ( localize(
|
|
511
|
-
|
|
511
|
+
15992,
|
|
512
512
|
"GitHub Enterprise sign-in failed. Check your instance URL and try again."
|
|
513
513
|
))
|
|
514
514
|
});
|
|
@@ -523,8 +523,8 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
523
523
|
}
|
|
524
524
|
let isSingleWord = false;
|
|
525
525
|
const result = await this.quickInputService.input({
|
|
526
|
-
prompt: ( localize(
|
|
527
|
-
placeHolder: ( localize(
|
|
526
|
+
prompt: ( localize(15993, "What is your {0} instance?", defaultChat.provider.enterprise.name)),
|
|
527
|
+
placeHolder: ( localize(15994, "i.e. \"octocat\" or \"https://octocat.ghe.com\"...")),
|
|
528
528
|
ignoreFocusLost: true,
|
|
529
529
|
value: uri,
|
|
530
530
|
validateInput: async value => {
|
|
@@ -535,14 +535,14 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
535
535
|
if (domainRegEx.test(value)) {
|
|
536
536
|
isSingleWord = true;
|
|
537
537
|
return {
|
|
538
|
-
content: ( localize(
|
|
538
|
+
content: ( localize(15995, "Will resolve to {0}", `https://${value}.ghe.com`)),
|
|
539
539
|
severity: Severity.Info
|
|
540
540
|
};
|
|
541
541
|
}
|
|
542
542
|
if (!fullUriRegEx.test(value)) {
|
|
543
543
|
return {
|
|
544
544
|
content: ( localize(
|
|
545
|
-
|
|
545
|
+
15996,
|
|
546
546
|
"You must enter a valid {0} instance (i.e. \"octocat\" or \"https://octocat.ghe.com\")",
|
|
547
547
|
defaultChat.provider.enterprise.name
|
|
548
548
|
)),
|
|
@@ -567,15 +567,15 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
567
567
|
_renderPersonalizeStep(container) {
|
|
568
568
|
const wrapper = append(container, $(".onboarding-a-personalize"));
|
|
569
569
|
const themeLabel = append(wrapper, $("div.onboarding-a-section-label"));
|
|
570
|
-
themeLabel.textContent = ( localize(
|
|
570
|
+
themeLabel.textContent = ( localize(15997, "Color Theme"));
|
|
571
571
|
const themeHint = append(wrapper, $("div.onboarding-a-theme-hint"));
|
|
572
572
|
themeHint.textContent = ( localize(
|
|
573
|
-
|
|
573
|
+
15998,
|
|
574
574
|
"You can browse and install more themes later from the Extensions view."
|
|
575
575
|
));
|
|
576
576
|
const themeGrid = append(wrapper, $(".onboarding-a-theme-grid"));
|
|
577
577
|
themeGrid.setAttribute("role", "radiogroup");
|
|
578
|
-
themeGrid.setAttribute("aria-label", ( localize(
|
|
578
|
+
themeGrid.setAttribute("aria-label", ( localize(15999, "Choose a color theme")));
|
|
579
579
|
const hasOtherEditors = this._hasOtherEditors();
|
|
580
580
|
const allThemes = product.onboardingThemes ?? [];
|
|
581
581
|
const themes = hasOtherEditors ? allThemes.filter(t => !t.id.startsWith("solarized")) : allThemes;
|
|
@@ -595,15 +595,15 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
595
595
|
wrapper,
|
|
596
596
|
$("div.onboarding-a-section-label.onboarding-a-section-label-keymap")
|
|
597
597
|
);
|
|
598
|
-
keymapLabel.textContent = ( localize(
|
|
598
|
+
keymapLabel.textContent = ( localize(16000, "Keyboard Mapping"));
|
|
599
599
|
const keymapHint = append(wrapper, $("div.onboarding-a-theme-hint"));
|
|
600
600
|
keymapHint.textContent = ( localize(
|
|
601
|
-
|
|
601
|
+
16001,
|
|
602
602
|
"Coming from another editor? Import your keyboard mapping to feel right at home."
|
|
603
603
|
));
|
|
604
604
|
const keymapList = append(wrapper, $(".onboarding-a-keymap-list"));
|
|
605
605
|
keymapList.setAttribute("role", "radiogroup");
|
|
606
|
-
keymapList.setAttribute("aria-label", ( localize(
|
|
606
|
+
keymapList.setAttribute("aria-label", ( localize(16002, "Choose a keyboard mapping")));
|
|
607
607
|
const keymapPills = [];
|
|
608
608
|
for (const keymap of keymapOptions) {
|
|
609
609
|
const pill = this._registerStepFocusable(append(keymapList, $("button.onboarding-a-keymap-pill")));
|
|
@@ -626,7 +626,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
626
626
|
}
|
|
627
627
|
pill.classList.add("selected");
|
|
628
628
|
pill.setAttribute("aria-checked", "true");
|
|
629
|
-
this.accessibilityService.alert(( localize(
|
|
629
|
+
this.accessibilityService.alert(( localize(16003, "{0} keyboard mapping selected", keymap.label)));
|
|
630
630
|
}));
|
|
631
631
|
}
|
|
632
632
|
const selectedKeymapIndex = keymapOptions.findIndex(k => k.id === this.selectedKeymapId);
|
|
@@ -636,7 +636,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
636
636
|
_renderPersonalizeSubtitle(container) {
|
|
637
637
|
clearNode(container);
|
|
638
638
|
const modifier = isMacintosh ? "Cmd" : "Ctrl";
|
|
639
|
-
container.append(( localize(
|
|
639
|
+
container.append(( localize(16004, "Tip: Press ")), this._createKbd(( localize(16005, "{0}", modifier))), "+", this._createKbd(( localize(16006, "Shift"))), "+", this._createKbd(( localize(16007, "P"))), ( localize(16008, " to access all VS Code commands.")));
|
|
640
640
|
}
|
|
641
641
|
_createThemeCard(parent, theme, allCards) {
|
|
642
642
|
const card = this._registerStepFocusable(append(parent, $("div.onboarding-a-theme-card")));
|
|
@@ -664,7 +664,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
664
664
|
}
|
|
665
665
|
card.classList.add("selected");
|
|
666
666
|
card.setAttribute("aria-checked", "true");
|
|
667
|
-
this.accessibilityService.alert(( localize(
|
|
667
|
+
this.accessibilityService.alert(( localize(16009, "{0} theme selected", theme.label)));
|
|
668
668
|
}));
|
|
669
669
|
this.stepDisposables.add(addDisposableListener(card, EventType.KEY_DOWN, e => {
|
|
670
670
|
if (e.key === "Enter" || e.key === " ") {
|
|
@@ -701,7 +701,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
701
701
|
this.notificationService.notify({
|
|
702
702
|
severity: Severity.Warning,
|
|
703
703
|
message: ( localize(
|
|
704
|
-
|
|
704
|
+
16010,
|
|
705
705
|
"Could not install {0} keymap. You can install it later from Extensions.",
|
|
706
706
|
keymap.label
|
|
707
707
|
))
|
|
@@ -824,7 +824,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
824
824
|
const wrapper = append(container, $(".onboarding-a-ai-pref"));
|
|
825
825
|
const cards = append(wrapper, $(".onboarding-a-ai-pref-cards"));
|
|
826
826
|
cards.setAttribute("role", "radiogroup");
|
|
827
|
-
cards.setAttribute("aria-label", ( localize(
|
|
827
|
+
cards.setAttribute("aria-label", ( localize(16011, "Choose your AI collaboration style")));
|
|
828
828
|
const allCards = [];
|
|
829
829
|
for (const option of ONBOARDING_AI_PREFERENCE_OPTIONS) {
|
|
830
830
|
const card = this._registerStepFocusable(append(cards, $("button.onboarding-a-ai-pref-card")));
|
|
@@ -852,13 +852,13 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
852
852
|
c.setAttribute("aria-checked", c.dataset.id === option.id ? "true" : "false");
|
|
853
853
|
}
|
|
854
854
|
this._applyAiPreference(option.id);
|
|
855
|
-
this.accessibilityService.alert(( localize(
|
|
855
|
+
this.accessibilityService.alert(( localize(16012, "{0} selected", option.label)));
|
|
856
856
|
}));
|
|
857
857
|
}
|
|
858
858
|
const selectedAiIndex = ONBOARDING_AI_PREFERENCE_OPTIONS.findIndex(o => o.id === this.selectedAiMode);
|
|
859
859
|
this._setupRadioGroupNavigation(allCards, Math.max(0, selectedAiIndex));
|
|
860
860
|
const hint = append(wrapper, $("div.onboarding-a-ai-pref-hint"));
|
|
861
|
-
hint.textContent = ( localize(
|
|
861
|
+
hint.textContent = ( localize(16013, "You can change this anytime in Settings."));
|
|
862
862
|
}
|
|
863
863
|
_applyAiPreference(mode) {
|
|
864
864
|
switch (mode) {
|
|
@@ -878,7 +878,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
878
878
|
const keys = isMacintosh ?
|
|
879
879
|
["⌘", "⌃", "I"] : ["Ctrl", "Alt", "I"];
|
|
880
880
|
const shortcut = ( keys.map(k => this._createKbd(k)));
|
|
881
|
-
el.append(( localize(
|
|
881
|
+
el.append(( localize(16014, "Open Chat anytime with ")));
|
|
882
882
|
for (let i = 0; i < shortcut.length; i++) {
|
|
883
883
|
if (i > 0) {
|
|
884
884
|
el.append("+");
|
|
@@ -891,30 +891,30 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
891
891
|
const features = append(wrapper, $(".onboarding-a-sessions-features"));
|
|
892
892
|
const chatGroup = append(features, $(".onboarding-a-sessions-group"));
|
|
893
893
|
const chatLabel = append(chatGroup, $("div.onboarding-a-sessions-group-label"));
|
|
894
|
-
chatLabel.textContent = ( localize(
|
|
894
|
+
chatLabel.textContent = ( localize(16015, "Choose Your Agent"));
|
|
895
895
|
const chatGrid = append(chatGroup, $(".onboarding-a-sessions-grid.onboarding-a-sessions-grid-2"));
|
|
896
|
-
this._createFeatureCard(chatGrid, Codicon.listOrdered, ( localize(
|
|
897
|
-
|
|
896
|
+
this._createFeatureCard(chatGrid, Codicon.listOrdered, ( localize(16016, "Plan")), ( localize(
|
|
897
|
+
16017,
|
|
898
898
|
"Produce a structured implementation plan before any code changes, then hand it off to an implementation agent to execute."
|
|
899
899
|
)));
|
|
900
|
-
this._createFeatureCard(chatGrid, Codicon.commentDiscussion, ( localize(
|
|
901
|
-
|
|
900
|
+
this._createFeatureCard(chatGrid, Codicon.commentDiscussion, ( localize(16018, "Agent")), ( localize(
|
|
901
|
+
16019,
|
|
902
902
|
"Describe a goal. The agent plans the approach, edits files, runs commands, and self-corrects. You review and approve along the way."
|
|
903
903
|
)));
|
|
904
904
|
const moreGroup = append(features, $(".onboarding-a-sessions-group"));
|
|
905
905
|
const moreLabel = append(moreGroup, $("div.onboarding-a-sessions-group-label"));
|
|
906
|
-
moreLabel.textContent = ( localize(
|
|
906
|
+
moreLabel.textContent = ( localize(16020, "Agents That Work Your Way"));
|
|
907
907
|
const moreGrid = append(moreGroup, $(".onboarding-a-sessions-grid.onboarding-a-sessions-grid-2"));
|
|
908
|
-
this._createFeatureCard(moreGrid, Codicon.rocket, ( localize(
|
|
909
|
-
|
|
908
|
+
this._createFeatureCard(moreGrid, Codicon.rocket, ( localize(16021, "Run Agents Anywhere")), ( localize(
|
|
909
|
+
16022,
|
|
910
910
|
"Run agents locally for interactive work, in the background with Copilot CLI, or in the cloud with cloud agents that open a pull request your team can review."
|
|
911
911
|
)));
|
|
912
|
-
this._createFeatureCard(moreGrid, Codicon.settingsGear, ( localize(
|
|
913
|
-
|
|
912
|
+
this._createFeatureCard(moreGrid, Codicon.settingsGear, ( localize(16023, "Customize Your Agents")), ( localize(
|
|
913
|
+
16024,
|
|
914
914
|
"Tailor Copilot to your project with custom instructions and agents, skills, reusable prompts, and MCP servers that connect to the tools and context you rely on."
|
|
915
915
|
)));
|
|
916
916
|
const docsRow = append(wrapper, $(".onboarding-a-sessions-docs"));
|
|
917
|
-
this._createDocLink(docsRow, ( localize(
|
|
917
|
+
this._createDocLink(docsRow, ( localize(16025, "Agents tutorial")), "https://code.visualstudio.com/docs/copilot/agents/agents-tutorial", "agentsTutorial");
|
|
918
918
|
}
|
|
919
919
|
_createFeatureCard(parent, icon, title, description) {
|
|
920
920
|
const card = this._registerStepFocusable(append(parent, $("div.onboarding-a-feature-card")));
|
package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/welcomeOnboarding.contribution.js
CHANGED
|
@@ -13,7 +13,7 @@ registerAction2(class extends Action2 {
|
|
|
13
13
|
constructor() {
|
|
14
14
|
super({
|
|
15
15
|
id: "workbench.action.welcomeOnboarding2026",
|
|
16
|
-
title: ( localize2(
|
|
16
|
+
title: ( localize2(16026, "Welcome Onboarding 2026")),
|
|
17
17
|
category: Categories.Developer,
|
|
18
18
|
f1: true
|
|
19
19
|
});
|
|
@@ -18,13 +18,13 @@ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/com
|
|
|
18
18
|
import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
19
19
|
|
|
20
20
|
var NewFileTemplatesManager_1;
|
|
21
|
-
const builtInSource = ( localize(
|
|
22
|
-
const category = ( localize2(
|
|
21
|
+
const builtInSource = ( localize(16041, "Built-In"));
|
|
22
|
+
const category = ( localize2(16042, "Create"));
|
|
23
23
|
registerAction2(class extends Action2 {
|
|
24
24
|
constructor() {
|
|
25
25
|
super({
|
|
26
26
|
id: "welcome.showNewFileEntries",
|
|
27
|
-
title: ( localize2(
|
|
27
|
+
title: ( localize2(16043, "New File...")),
|
|
28
28
|
category,
|
|
29
29
|
f1: true,
|
|
30
30
|
precondition: ( IsSessionsWindowContext.negate()),
|
|
@@ -108,8 +108,8 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
|
|
|
108
108
|
const qp = this.quickInputService.createQuickPick({
|
|
109
109
|
useSeparators: true
|
|
110
110
|
});
|
|
111
|
-
qp.title = ( localize(
|
|
112
|
-
qp.placeholder = ( localize(
|
|
111
|
+
qp.title = ( localize(16044, "New File..."));
|
|
112
|
+
qp.placeholder = ( localize(16045, "Select File Type or Enter File Name..."));
|
|
113
113
|
qp.sortByLabel = false;
|
|
114
114
|
qp.matchOnDetail = true;
|
|
115
115
|
qp.matchOnDescription = true;
|
|
@@ -136,8 +136,8 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
|
|
|
136
136
|
return a.from.localeCompare(b.from);
|
|
137
137
|
};
|
|
138
138
|
const displayCategory = {
|
|
139
|
-
"file": ( localize(
|
|
140
|
-
"notebook": ( localize(
|
|
139
|
+
"file": ( localize(16046, "File")),
|
|
140
|
+
"notebook": ( localize(16047, "Notebook"))
|
|
141
141
|
};
|
|
142
142
|
const refreshQp = entries => {
|
|
143
143
|
const items = [];
|
|
@@ -159,7 +159,7 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
|
|
|
159
159
|
keybinding,
|
|
160
160
|
buttons: command ? [{
|
|
161
161
|
iconClass: "codicon codicon-gear",
|
|
162
|
-
tooltip: ( localize(
|
|
162
|
+
tooltip: ( localize(16048, "Configure Keybinding"))
|
|
163
163
|
}] : [],
|
|
164
164
|
detail: "",
|
|
165
165
|
description: entry.from
|
|
@@ -181,7 +181,7 @@ let NewFileTemplatesManager = class NewFileTemplatesManager extends Disposable {
|
|
|
181
181
|
viewType: undefined,
|
|
182
182
|
fileName: val
|
|
183
183
|
},
|
|
184
|
-
title: ( localize(
|
|
184
|
+
title: ( localize(16049, "Create New File ({0})", val)),
|
|
185
185
|
group: "file",
|
|
186
186
|
from: builtInSource
|
|
187
187
|
};
|
|
@@ -215,7 +215,7 @@ MenuRegistry.appendMenuItem(MenuId.NewFile, {
|
|
|
215
215
|
group: "file",
|
|
216
216
|
command: {
|
|
217
217
|
id: "workbench.action.files.newUntitledFile",
|
|
218
|
-
title: ( localize(
|
|
218
|
+
title: ( localize(16050, "Text File"))
|
|
219
219
|
},
|
|
220
220
|
order: 1
|
|
221
221
|
});
|
|
@@ -63,7 +63,7 @@ function parseGroupAndOrder(welcome, contribution) {
|
|
|
63
63
|
if (welcome.group) {
|
|
64
64
|
if (!isProposedApiEnabled(contribution.description)) {
|
|
65
65
|
contribution.collector.warn(( localize(
|
|
66
|
-
|
|
66
|
+
16051,
|
|
67
67
|
"The viewsWelcome contribution in '{0}' requires 'enabledApiProposals: [\"contribViewsWelcome\"]' in order to use the 'group' proposed property.",
|
|
68
68
|
contribution.description.identifier.value
|
|
69
69
|
)));
|
|
@@ -20,12 +20,12 @@ const ViewIdentifierMap = {
|
|
|
20
20
|
const viewsWelcomeExtensionPointSchema = ( Object.freeze({
|
|
21
21
|
type: "array",
|
|
22
22
|
description: ( localize(
|
|
23
|
-
|
|
23
|
+
16052,
|
|
24
24
|
"Contributed views welcome content. Welcome content will be rendered in tree based views whenever they have no meaningful content to display, ie. the File Explorer when no folder is open. Such content is useful as in-product documentation to drive users to use certain features before they are available. A good example would be a `Clone Repository` button in the File Explorer welcome view."
|
|
25
25
|
)),
|
|
26
26
|
items: {
|
|
27
27
|
type: "object",
|
|
28
|
-
description: ( localize(
|
|
28
|
+
description: ( localize(16053, "Contributed welcome content for a specific view.")),
|
|
29
29
|
required: [
|
|
30
30
|
ViewsWelcomeExtensionPointFields.view,
|
|
31
31
|
ViewsWelcomeExtensionPointFields.contents
|
|
@@ -35,13 +35,13 @@ const viewsWelcomeExtensionPointSchema = ( Object.freeze({
|
|
|
35
35
|
anyOf: [{
|
|
36
36
|
type: "string",
|
|
37
37
|
description: ( localize(
|
|
38
|
-
|
|
38
|
+
16054,
|
|
39
39
|
"Target view identifier for this welcome content. Only tree based views are supported."
|
|
40
40
|
))
|
|
41
41
|
}, {
|
|
42
42
|
type: "string",
|
|
43
43
|
description: ( localize(
|
|
44
|
-
|
|
44
|
+
16054,
|
|
45
45
|
"Target view identifier for this welcome content. Only tree based views are supported."
|
|
46
46
|
)),
|
|
47
47
|
enum: ( Object.keys(ViewIdentifierMap))
|
|
@@ -50,22 +50,22 @@ const viewsWelcomeExtensionPointSchema = ( Object.freeze({
|
|
|
50
50
|
[ViewsWelcomeExtensionPointFields.contents]: {
|
|
51
51
|
type: "string",
|
|
52
52
|
description: ( localize(
|
|
53
|
-
|
|
53
|
+
16055,
|
|
54
54
|
"Welcome content to be displayed. The format of the contents is a subset of Markdown, with support for links only."
|
|
55
55
|
))
|
|
56
56
|
},
|
|
57
57
|
[ViewsWelcomeExtensionPointFields.when]: {
|
|
58
58
|
type: "string",
|
|
59
|
-
description: ( localize(
|
|
59
|
+
description: ( localize(16056, "Condition when the welcome content should be displayed."))
|
|
60
60
|
},
|
|
61
61
|
[ViewsWelcomeExtensionPointFields.group]: {
|
|
62
62
|
type: "string",
|
|
63
|
-
description: ( localize(
|
|
63
|
+
description: ( localize(16057, "Group to which this welcome content belongs. Proposed API."))
|
|
64
64
|
},
|
|
65
65
|
[ViewsWelcomeExtensionPointFields.enablement]: {
|
|
66
66
|
type: "string",
|
|
67
67
|
description: ( localize(
|
|
68
|
-
|
|
68
|
+
16058,
|
|
69
69
|
"Condition when the welcome content buttons and command links should be enabled."
|
|
70
70
|
))
|
|
71
71
|
}
|