@codingame/monaco-vscode-welcome-service-override 32.0.2 → 33.0.9
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 +3 -3
- package/vscode/src/vs/workbench/contrib/welcomeOnboarding/browser/onboardingVariationA.js +61 -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,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-welcome-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "33.0.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - welcome 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": "33.0.9"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -18,6 +18,7 @@ import { renderIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/
|
|
|
18
18
|
import { IWorkbenchThemeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/workbenchThemeService.service';
|
|
19
19
|
import { EXTENSION_INSTALL_SKIP_WALKTHROUGH_CONTEXT } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
20
20
|
import { IExtensionGalleryService, IExtensionManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
21
|
+
import { GitHubPaths } from '@codingame/monaco-vscode-api/vscode/vs/platform/defaultAccount/common/defaultAccount';
|
|
21
22
|
import { IDefaultAccountService } from '@codingame/monaco-vscode-api/vscode/vs/platform/defaultAccount/common/defaultAccount.service';
|
|
22
23
|
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
23
24
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
|
|
@@ -108,11 +109,11 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
108
109
|
this.overlay = append(container, $(".onboarding-a-overlay"));
|
|
109
110
|
this.overlay.setAttribute("role", "dialog");
|
|
110
111
|
this.overlay.setAttribute("aria-modal", "true");
|
|
111
|
-
this.overlay.setAttribute("aria-label", ( localize(
|
|
112
|
+
this.overlay.setAttribute("aria-label", ( localize(16096, "Welcome to Visual Studio Code")));
|
|
112
113
|
this.card = append(this.overlay, $(".onboarding-a-card"));
|
|
113
114
|
this.closeButton = append(this.card, $("button.onboarding-a-close-btn"));
|
|
114
115
|
this.closeButton.type = "button";
|
|
115
|
-
this.closeButton.setAttribute("aria-label", ( localize(
|
|
116
|
+
this.closeButton.setAttribute("aria-label", ( localize(16097, "Close")));
|
|
116
117
|
this.closeButton.appendChild(renderIcon(Codicon.close));
|
|
117
118
|
const header = append(this.card, $(".onboarding-a-header"));
|
|
118
119
|
this.progressContainer = append(header, $(".onboarding-a-progress"));
|
|
@@ -128,7 +129,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
128
129
|
this.footerLeft = append(footer, $(".onboarding-a-footer-left"));
|
|
129
130
|
const footerRight = append(footer, $(".onboarding-a-footer-right"));
|
|
130
131
|
this.backButton = append(footerRight, $("button.onboarding-a-btn.onboarding-a-btn-secondary"));
|
|
131
|
-
this.backButton.textContent = ( localize(
|
|
132
|
+
this.backButton.textContent = ( localize(16098, "Back"));
|
|
132
133
|
this.backButton.type = "button";
|
|
133
134
|
this.footerFocusableElements.push(this.backButton);
|
|
134
135
|
this.nextButton = append(footerRight, $("button.onboarding-a-btn.onboarding-a-btn-primary"));
|
|
@@ -244,7 +245,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
244
245
|
}
|
|
245
246
|
}
|
|
246
247
|
this.progressContainer.appendChild(this.stepLabelEl);
|
|
247
|
-
this.stepLabelEl.textContent = ( localize(
|
|
248
|
+
this.stepLabelEl.textContent = ( localize(16099, "{0} of {1}", this.currentStepIndex + 1, this.steps.length));
|
|
248
249
|
}
|
|
249
250
|
_renderStep() {
|
|
250
251
|
if (!this.titleEl || !this.subtitleEl || !this.contentEl) {
|
|
@@ -280,7 +281,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
280
281
|
break;
|
|
281
282
|
}
|
|
282
283
|
this.bodyEl?.setAttribute("aria-label", ( localize(
|
|
283
|
-
|
|
284
|
+
16100,
|
|
284
285
|
"Step {0} of {1}: {2}",
|
|
285
286
|
this.currentStepIndex + 1,
|
|
286
287
|
this.steps.length,
|
|
@@ -294,13 +295,13 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
294
295
|
if (this.nextButton) {
|
|
295
296
|
if (this.currentStepIndex === 0) {
|
|
296
297
|
this.nextButton.className = "onboarding-a-btn onboarding-a-btn-secondary";
|
|
297
|
-
this.nextButton.textContent = ( localize(
|
|
298
|
+
this.nextButton.textContent = ( localize(16101, "Continue without Signing In"));
|
|
298
299
|
} else if (this._isLastStep()) {
|
|
299
300
|
this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
|
|
300
|
-
this.nextButton.textContent = ( localize(
|
|
301
|
+
this.nextButton.textContent = ( localize(16102, "Get Started"));
|
|
301
302
|
} else {
|
|
302
303
|
this.nextButton.className = "onboarding-a-btn onboarding-a-btn-primary";
|
|
303
|
-
this.nextButton.textContent = ( localize(
|
|
304
|
+
this.nextButton.textContent = ( localize(16103, "Continue"));
|
|
304
305
|
}
|
|
305
306
|
}
|
|
306
307
|
if (this.footerLeft) {
|
|
@@ -308,7 +309,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
308
309
|
if (!this._footerSignInBtn && !this._userSignedIn) {
|
|
309
310
|
this._footerSignInBtn = append(this.footerLeft, $("button.onboarding-a-signin-nudge-btn"));
|
|
310
311
|
this._footerSignInBtn.type = "button";
|
|
311
|
-
this._footerSignInBtn.textContent = ( localize(
|
|
312
|
+
this._footerSignInBtn.textContent = ( localize(16104, "Sign in for AI Powered Features"));
|
|
312
313
|
this.stepDisposables.add(
|
|
313
314
|
addDisposableListener(this._footerSignInBtn, EventType.CLICK, async () => {
|
|
314
315
|
this._logAction("signInNudge");
|
|
@@ -336,37 +337,37 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
336
337
|
const content = append(wrapper, $(".onboarding-a-signin-content"));
|
|
337
338
|
const contentMain = append(content, $(".onboarding-a-signin-content-main"));
|
|
338
339
|
const title = append(contentMain, $("h2.onboarding-a-signin-title"));
|
|
339
|
-
title.textContent = ( localize(
|
|
340
|
+
title.textContent = ( localize(16105, "Welcome to VS Code"));
|
|
340
341
|
const subtitle = append(contentMain, $("p.onboarding-a-signin-subtitle"));
|
|
341
|
-
subtitle.textContent = ( localize(
|
|
342
|
+
subtitle.textContent = ( localize(16106, "Sign in to continue with AI-powered development."));
|
|
342
343
|
const actions = append(contentMain, $(".onboarding-a-signin-actions"));
|
|
343
|
-
const githubBtn = this._registerStepFocusable(this._createSignInButton(actions, "github", ( localize(
|
|
344
|
+
const githubBtn = this._registerStepFocusable(this._createSignInButton(actions, "github", ( localize(16107, "Continue with GitHub")), {
|
|
344
345
|
emphasized: true,
|
|
345
|
-
label: ( localize(
|
|
346
|
+
label: ( localize(16108, "Continue with GitHub"))
|
|
346
347
|
}));
|
|
347
348
|
this.stepDisposables.add(addDisposableListener(githubBtn, EventType.CLICK, () => {
|
|
348
349
|
this._logAction("signIn", undefined, "github");
|
|
349
350
|
this._handleSignIn();
|
|
350
351
|
}));
|
|
351
|
-
const googleBtn = this._registerStepFocusable(this._createSignInButton(actions, "google", ( localize(
|
|
352
|
+
const googleBtn = this._registerStepFocusable(this._createSignInButton(actions, "google", ( localize(16109, "Continue with Google")), {
|
|
352
353
|
iconOnly: true,
|
|
353
|
-
label: ( localize(
|
|
354
|
+
label: ( localize(16109, "Continue with Google"))
|
|
354
355
|
}));
|
|
355
356
|
this.stepDisposables.add(addDisposableListener(googleBtn, EventType.CLICK, () => {
|
|
356
357
|
this._logAction("signIn", undefined, "google");
|
|
357
358
|
this._handleSignIn("google");
|
|
358
359
|
}));
|
|
359
|
-
const appleBtn = this._registerStepFocusable(this._createSignInButton(actions, "apple", ( localize(
|
|
360
|
+
const appleBtn = this._registerStepFocusable(this._createSignInButton(actions, "apple", ( localize(16110, "Continue with Apple")), {
|
|
360
361
|
iconOnly: true,
|
|
361
|
-
label: ( localize(
|
|
362
|
+
label: ( localize(16110, "Continue with Apple"))
|
|
362
363
|
}));
|
|
363
364
|
this.stepDisposables.add(addDisposableListener(appleBtn, EventType.CLICK, () => {
|
|
364
365
|
this._logAction("signIn", undefined, "apple");
|
|
365
366
|
this._handleSignIn("apple");
|
|
366
367
|
}));
|
|
367
|
-
const gheBtn = this._registerStepFocusable(this._createSignInButton(actions, "github-enterprise", ( localize(
|
|
368
|
+
const gheBtn = this._registerStepFocusable(this._createSignInButton(actions, "github-enterprise", ( localize(16111, "GHE")), {
|
|
368
369
|
textOnly: true,
|
|
369
|
-
label: ( localize(
|
|
370
|
+
label: ( localize(16112, "Continue with GitHub Enterprise"))
|
|
370
371
|
}));
|
|
371
372
|
this.stepDisposables.add(addDisposableListener(gheBtn, EventType.CLICK, () => {
|
|
372
373
|
this._logAction("signIn", undefined, "github-enterprise");
|
|
@@ -376,20 +377,20 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
376
377
|
const disclaimerCol = append(footer, $(".onboarding-a-signin-disclaimer-col"));
|
|
377
378
|
const copilotDisclaimer = append(disclaimerCol, $(".onboarding-a-signin-disclaimer"));
|
|
378
379
|
copilotDisclaimer.append(( localize(
|
|
379
|
-
|
|
380
|
+
16113,
|
|
380
381
|
"By signing in, you agree to {0}'s ",
|
|
381
382
|
defaultChat.provider.default.name
|
|
382
383
|
)));
|
|
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(
|
|
384
|
+
this._createInlineLink(copilotDisclaimer, ( localize(16114, "Terms")), defaultChat.termsStatementUrl);
|
|
385
|
+
copilotDisclaimer.append(( localize(16115, " and ")));
|
|
386
|
+
this._createInlineLink(copilotDisclaimer, ( localize(16116, "Privacy Statement")), defaultChat.privacyStatementUrl);
|
|
387
|
+
copilotDisclaimer.append(( localize(16117, ". {0} Copilot may show ", defaultChat.provider.default.name)));
|
|
388
|
+
this._createInlineLink(copilotDisclaimer, ( localize(16118, "public code")), defaultChat.publicCodeMatchesUrl);
|
|
389
|
+
copilotDisclaimer.append(( localize(16119, " suggestions and use your data to improve the product.")));
|
|
389
390
|
copilotDisclaimer.append(" ");
|
|
390
|
-
copilotDisclaimer.append(( localize(
|
|
391
|
-
this._createInlineLink(copilotDisclaimer, ( localize(
|
|
392
|
-
copilotDisclaimer.append(( localize(
|
|
391
|
+
copilotDisclaimer.append(( localize(16120, "You can change these ")));
|
|
392
|
+
this._createInlineLink(copilotDisclaimer, ( localize(16121, "settings")), this.defaultAccountService.resolveGitHubUrl(GitHubPaths.copilotSettings));
|
|
393
|
+
copilotDisclaimer.append(( localize(16122, " anytime.")));
|
|
393
394
|
}
|
|
394
395
|
_createSignInButton(parent, providerClass, label, options) {
|
|
395
396
|
const isCompact = options?.iconOnly || options?.textOnly;
|
|
@@ -458,7 +459,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
458
459
|
});
|
|
459
460
|
this.notificationService.notify({
|
|
460
461
|
severity: Severity.Error,
|
|
461
|
-
message: ( localize(
|
|
462
|
+
message: ( localize(16123, "Sign-in failed. You can try again later from the Accounts menu."))
|
|
462
463
|
});
|
|
463
464
|
}
|
|
464
465
|
}
|
|
@@ -508,7 +509,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
508
509
|
this.notificationService.notify({
|
|
509
510
|
severity: Severity.Error,
|
|
510
511
|
message: ( localize(
|
|
511
|
-
|
|
512
|
+
16124,
|
|
512
513
|
"GitHub Enterprise sign-in failed. Check your instance URL and try again."
|
|
513
514
|
))
|
|
514
515
|
});
|
|
@@ -523,8 +524,8 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
523
524
|
}
|
|
524
525
|
let isSingleWord = false;
|
|
525
526
|
const result = await this.quickInputService.input({
|
|
526
|
-
prompt: ( localize(
|
|
527
|
-
placeHolder: ( localize(
|
|
527
|
+
prompt: ( localize(16125, "What is your {0} instance?", defaultChat.provider.enterprise.name)),
|
|
528
|
+
placeHolder: ( localize(16126, "i.e. \"octocat\" or \"https://octocat.ghe.com\"...")),
|
|
528
529
|
ignoreFocusLost: true,
|
|
529
530
|
value: uri,
|
|
530
531
|
validateInput: async value => {
|
|
@@ -535,14 +536,14 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
535
536
|
if (domainRegEx.test(value)) {
|
|
536
537
|
isSingleWord = true;
|
|
537
538
|
return {
|
|
538
|
-
content: ( localize(
|
|
539
|
+
content: ( localize(16127, "Will resolve to {0}", `https://${value}.ghe.com`)),
|
|
539
540
|
severity: Severity.Info
|
|
540
541
|
};
|
|
541
542
|
}
|
|
542
543
|
if (!fullUriRegEx.test(value)) {
|
|
543
544
|
return {
|
|
544
545
|
content: ( localize(
|
|
545
|
-
|
|
546
|
+
16128,
|
|
546
547
|
"You must enter a valid {0} instance (i.e. \"octocat\" or \"https://octocat.ghe.com\")",
|
|
547
548
|
defaultChat.provider.enterprise.name
|
|
548
549
|
)),
|
|
@@ -567,15 +568,15 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
567
568
|
_renderPersonalizeStep(container) {
|
|
568
569
|
const wrapper = append(container, $(".onboarding-a-personalize"));
|
|
569
570
|
const themeLabel = append(wrapper, $("div.onboarding-a-section-label"));
|
|
570
|
-
themeLabel.textContent = ( localize(
|
|
571
|
+
themeLabel.textContent = ( localize(16129, "Color Theme"));
|
|
571
572
|
const themeHint = append(wrapper, $("div.onboarding-a-theme-hint"));
|
|
572
573
|
themeHint.textContent = ( localize(
|
|
573
|
-
|
|
574
|
+
16130,
|
|
574
575
|
"You can browse and install more themes later from the Extensions view."
|
|
575
576
|
));
|
|
576
577
|
const themeGrid = append(wrapper, $(".onboarding-a-theme-grid"));
|
|
577
578
|
themeGrid.setAttribute("role", "radiogroup");
|
|
578
|
-
themeGrid.setAttribute("aria-label", ( localize(
|
|
579
|
+
themeGrid.setAttribute("aria-label", ( localize(16131, "Choose a color theme")));
|
|
579
580
|
const hasOtherEditors = this._hasOtherEditors();
|
|
580
581
|
const allThemes = product.onboardingThemes ?? [];
|
|
581
582
|
const themes = hasOtherEditors ? allThemes.filter(t => !t.id.startsWith("solarized")) : allThemes;
|
|
@@ -595,15 +596,15 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
595
596
|
wrapper,
|
|
596
597
|
$("div.onboarding-a-section-label.onboarding-a-section-label-keymap")
|
|
597
598
|
);
|
|
598
|
-
keymapLabel.textContent = ( localize(
|
|
599
|
+
keymapLabel.textContent = ( localize(16132, "Keyboard Mapping"));
|
|
599
600
|
const keymapHint = append(wrapper, $("div.onboarding-a-theme-hint"));
|
|
600
601
|
keymapHint.textContent = ( localize(
|
|
601
|
-
|
|
602
|
+
16133,
|
|
602
603
|
"Coming from another editor? Import your keyboard mapping to feel right at home."
|
|
603
604
|
));
|
|
604
605
|
const keymapList = append(wrapper, $(".onboarding-a-keymap-list"));
|
|
605
606
|
keymapList.setAttribute("role", "radiogroup");
|
|
606
|
-
keymapList.setAttribute("aria-label", ( localize(
|
|
607
|
+
keymapList.setAttribute("aria-label", ( localize(16134, "Choose a keyboard mapping")));
|
|
607
608
|
const keymapPills = [];
|
|
608
609
|
for (const keymap of keymapOptions) {
|
|
609
610
|
const pill = this._registerStepFocusable(append(keymapList, $("button.onboarding-a-keymap-pill")));
|
|
@@ -626,7 +627,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
626
627
|
}
|
|
627
628
|
pill.classList.add("selected");
|
|
628
629
|
pill.setAttribute("aria-checked", "true");
|
|
629
|
-
this.accessibilityService.alert(( localize(
|
|
630
|
+
this.accessibilityService.alert(( localize(16135, "{0} keyboard mapping selected", keymap.label)));
|
|
630
631
|
}));
|
|
631
632
|
}
|
|
632
633
|
const selectedKeymapIndex = keymapOptions.findIndex(k => k.id === this.selectedKeymapId);
|
|
@@ -636,7 +637,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
636
637
|
_renderPersonalizeSubtitle(container) {
|
|
637
638
|
clearNode(container);
|
|
638
639
|
const modifier = isMacintosh ? "Cmd" : "Ctrl";
|
|
639
|
-
container.append(( localize(
|
|
640
|
+
container.append(( localize(16136, "Tip: Press ")), this._createKbd(( localize(16137, "{0}", modifier))), "+", this._createKbd(( localize(16138, "Shift"))), "+", this._createKbd(( localize(16139, "P"))), ( localize(16140, " to access all VS Code commands.")));
|
|
640
641
|
}
|
|
641
642
|
_createThemeCard(parent, theme, allCards) {
|
|
642
643
|
const card = this._registerStepFocusable(append(parent, $("div.onboarding-a-theme-card")));
|
|
@@ -664,7 +665,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
664
665
|
}
|
|
665
666
|
card.classList.add("selected");
|
|
666
667
|
card.setAttribute("aria-checked", "true");
|
|
667
|
-
this.accessibilityService.alert(( localize(
|
|
668
|
+
this.accessibilityService.alert(( localize(16141, "{0} theme selected", theme.label)));
|
|
668
669
|
}));
|
|
669
670
|
this.stepDisposables.add(addDisposableListener(card, EventType.KEY_DOWN, e => {
|
|
670
671
|
if (e.key === "Enter" || e.key === " ") {
|
|
@@ -701,7 +702,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
701
702
|
this.notificationService.notify({
|
|
702
703
|
severity: Severity.Warning,
|
|
703
704
|
message: ( localize(
|
|
704
|
-
|
|
705
|
+
16142,
|
|
705
706
|
"Could not install {0} keymap. You can install it later from Extensions.",
|
|
706
707
|
keymap.label
|
|
707
708
|
))
|
|
@@ -824,7 +825,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
824
825
|
const wrapper = append(container, $(".onboarding-a-ai-pref"));
|
|
825
826
|
const cards = append(wrapper, $(".onboarding-a-ai-pref-cards"));
|
|
826
827
|
cards.setAttribute("role", "radiogroup");
|
|
827
|
-
cards.setAttribute("aria-label", ( localize(
|
|
828
|
+
cards.setAttribute("aria-label", ( localize(16143, "Choose your AI collaboration style")));
|
|
828
829
|
const allCards = [];
|
|
829
830
|
for (const option of ONBOARDING_AI_PREFERENCE_OPTIONS) {
|
|
830
831
|
const card = this._registerStepFocusable(append(cards, $("button.onboarding-a-ai-pref-card")));
|
|
@@ -852,13 +853,13 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
852
853
|
c.setAttribute("aria-checked", c.dataset.id === option.id ? "true" : "false");
|
|
853
854
|
}
|
|
854
855
|
this._applyAiPreference(option.id);
|
|
855
|
-
this.accessibilityService.alert(( localize(
|
|
856
|
+
this.accessibilityService.alert(( localize(16144, "{0} selected", option.label)));
|
|
856
857
|
}));
|
|
857
858
|
}
|
|
858
859
|
const selectedAiIndex = ONBOARDING_AI_PREFERENCE_OPTIONS.findIndex(o => o.id === this.selectedAiMode);
|
|
859
860
|
this._setupRadioGroupNavigation(allCards, Math.max(0, selectedAiIndex));
|
|
860
861
|
const hint = append(wrapper, $("div.onboarding-a-ai-pref-hint"));
|
|
861
|
-
hint.textContent = ( localize(
|
|
862
|
+
hint.textContent = ( localize(16145, "You can change this anytime in Settings."));
|
|
862
863
|
}
|
|
863
864
|
_applyAiPreference(mode) {
|
|
864
865
|
switch (mode) {
|
|
@@ -878,7 +879,7 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
878
879
|
const keys = isMacintosh ?
|
|
879
880
|
["⌘", "⌃", "I"] : ["Ctrl", "Alt", "I"];
|
|
880
881
|
const shortcut = ( keys.map(k => this._createKbd(k)));
|
|
881
|
-
el.append(( localize(
|
|
882
|
+
el.append(( localize(16146, "Open Chat anytime with ")));
|
|
882
883
|
for (let i = 0; i < shortcut.length; i++) {
|
|
883
884
|
if (i > 0) {
|
|
884
885
|
el.append("+");
|
|
@@ -891,30 +892,30 @@ let OnboardingVariationA = class OnboardingVariationA extends Disposable {
|
|
|
891
892
|
const features = append(wrapper, $(".onboarding-a-sessions-features"));
|
|
892
893
|
const chatGroup = append(features, $(".onboarding-a-sessions-group"));
|
|
893
894
|
const chatLabel = append(chatGroup, $("div.onboarding-a-sessions-group-label"));
|
|
894
|
-
chatLabel.textContent = ( localize(
|
|
895
|
+
chatLabel.textContent = ( localize(16147, "Choose Your Agent"));
|
|
895
896
|
const chatGrid = append(chatGroup, $(".onboarding-a-sessions-grid.onboarding-a-sessions-grid-2"));
|
|
896
|
-
this._createFeatureCard(chatGrid, Codicon.listOrdered, ( localize(
|
|
897
|
-
|
|
897
|
+
this._createFeatureCard(chatGrid, Codicon.listOrdered, ( localize(16148, "Plan")), ( localize(
|
|
898
|
+
16149,
|
|
898
899
|
"Produce a structured implementation plan before any code changes, then hand it off to an implementation agent to execute."
|
|
899
900
|
)));
|
|
900
|
-
this._createFeatureCard(chatGrid, Codicon.commentDiscussion, ( localize(
|
|
901
|
-
|
|
901
|
+
this._createFeatureCard(chatGrid, Codicon.commentDiscussion, ( localize(16150, "Agent")), ( localize(
|
|
902
|
+
16151,
|
|
902
903
|
"Describe a goal. The agent plans the approach, edits files, runs commands, and self-corrects. You review and approve along the way."
|
|
903
904
|
)));
|
|
904
905
|
const moreGroup = append(features, $(".onboarding-a-sessions-group"));
|
|
905
906
|
const moreLabel = append(moreGroup, $("div.onboarding-a-sessions-group-label"));
|
|
906
|
-
moreLabel.textContent = ( localize(
|
|
907
|
+
moreLabel.textContent = ( localize(16152, "Agents That Work Your Way"));
|
|
907
908
|
const moreGrid = append(moreGroup, $(".onboarding-a-sessions-grid.onboarding-a-sessions-grid-2"));
|
|
908
|
-
this._createFeatureCard(moreGrid, Codicon.rocket, ( localize(
|
|
909
|
-
|
|
909
|
+
this._createFeatureCard(moreGrid, Codicon.rocket, ( localize(16153, "Run Agents Anywhere")), ( localize(
|
|
910
|
+
16154,
|
|
910
911
|
"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
912
|
)));
|
|
912
|
-
this._createFeatureCard(moreGrid, Codicon.settingsGear, ( localize(
|
|
913
|
-
|
|
913
|
+
this._createFeatureCard(moreGrid, Codicon.settingsGear, ( localize(16155, "Customize Your Agents")), ( localize(
|
|
914
|
+
16156,
|
|
914
915
|
"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
916
|
)));
|
|
916
917
|
const docsRow = append(wrapper, $(".onboarding-a-sessions-docs"));
|
|
917
|
-
this._createDocLink(docsRow, ( localize(
|
|
918
|
+
this._createDocLink(docsRow, ( localize(16157, "Agents tutorial")), "https://code.visualstudio.com/docs/copilot/agents/agents-tutorial", "agentsTutorial");
|
|
918
919
|
}
|
|
919
920
|
_createFeatureCard(parent, icon, title, description) {
|
|
920
921
|
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(16158, "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(16173, "Built-In"));
|
|
22
|
+
const category = ( localize2(16174, "Create"));
|
|
23
23
|
registerAction2(class extends Action2 {
|
|
24
24
|
constructor() {
|
|
25
25
|
super({
|
|
26
26
|
id: "welcome.showNewFileEntries",
|
|
27
|
-
title: ( localize2(
|
|
27
|
+
title: ( localize2(16175, "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(16176, "New File..."));
|
|
112
|
+
qp.placeholder = ( localize(16177, "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(16178, "File")),
|
|
140
|
+
"notebook": ( localize(16179, "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(16180, "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(16181, "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(16182, "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
|
+
16183,
|
|
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
|
+
16184,
|
|
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(16185, "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
|
+
16186,
|
|
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
|
+
16186,
|
|
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
|
+
16187,
|
|
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(16188, "Condition when the welcome content should be displayed."))
|
|
60
60
|
},
|
|
61
61
|
[ViewsWelcomeExtensionPointFields.group]: {
|
|
62
62
|
type: "string",
|
|
63
|
-
description: ( localize(
|
|
63
|
+
description: ( localize(16189, "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
|
+
16190,
|
|
69
69
|
"Condition when the welcome content buttons and command links should be enabled."
|
|
70
70
|
))
|
|
71
71
|
}
|