diff --git a/packages/core/package.nls.json b/packages/core/package.nls.json index 99461cd1069..92b7600fa50 100644 --- a/packages/core/package.nls.json +++ b/packages/core/package.nls.json @@ -437,5 +437,5 @@ "AWS.toolkit.lambda.walkthrough.step1.description": "Locally test and debug your code.", "AWS.toolkit.lambda.walkthrough.step2.title": "Deploy to the cloud", "AWS.toolkit.lambda.walkthrough.step2.description": "Test your application in the cloud from within VS Code. \n\nNote: The AWS CLI and the SAM CLI require AWS Credentials to interact with the cloud. For information on setting up your credentials, see [Authentication and access credentials](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). \n\n[Configure credentials](command:aws.toolkit.lambda.walkthrough.credential)", - "AWS.toolkit.lambda.serverlessLand.quickpickTitle": "Create Lambda Application from template" + "AWS.toolkit.lambda.serverlessLand.quickpickTitle": "Create application with Serverless template" } diff --git a/packages/core/src/awsService/appBuilder/serverlessLand/main.ts b/packages/core/src/awsService/appBuilder/serverlessLand/main.ts index 6734eabc0f6..d18b4de2688 100644 --- a/packages/core/src/awsService/appBuilder/serverlessLand/main.ts +++ b/packages/core/src/awsService/appBuilder/serverlessLand/main.ts @@ -118,9 +118,10 @@ async function openReadmeFile(config: CreateServerlessLandWizardForm): Promise setTimeout(resolve, 1000)) await vscode.commands.executeCommand('workbench.action.focusFirstEditorGroup') - await vscode.window.showTextDocument(readmeUri) + await vscode.commands.executeCommand('markdown.showPreview', readmeUri) } catch (err) { getLogger().error(`Error in openReadmeFile: ${err}`) throw new ToolkitError('Error processing README file') diff --git a/packages/core/src/awsService/appBuilder/serverlessLand/webViewManager.ts b/packages/core/src/awsService/appBuilder/serverlessLand/webViewManager.ts index 0bb9e70bef6..250ee883241 100644 --- a/packages/core/src/awsService/appBuilder/serverlessLand/webViewManager.ts +++ b/packages/core/src/awsService/appBuilder/serverlessLand/webViewManager.ts @@ -34,40 +34,4 @@ export class WebviewService { ` } - - public static getGitWebviewContent(url: string): string { - const htmlContent = ` - - - - - - -

To preview GitHub page, click here.

- - - ` - return htmlContent - } } diff --git a/packages/core/src/shared/ui/pickerPrompter.ts b/packages/core/src/shared/ui/pickerPrompter.ts index 599f5302caf..8b8b5ad542d 100644 --- a/packages/core/src/shared/ui/pickerPrompter.ts +++ b/packages/core/src/shared/ui/pickerPrompter.ts @@ -144,6 +144,7 @@ export function createQuickPick( const mergedOptions = { ...defaultQuickpickOptions, ...options } assign(mergedOptions, picker) picker.buttons = mergedOptions.buttons ?? [] + let serverlessPanel: vscode.WebviewPanel | undefined picker.onDidTriggerItemButton(async (event) => { const metadataManager = MetadataManager.getInstance() @@ -153,31 +154,28 @@ export function createQuickPick( const patternUrl = metadataManager.getUrl(selectedPattern.label) if (patternUrl) { if (event.button.tooltip === 'Open in GitHub') { - const panel = vscode.window.createWebviewPanel( - 'githubPreview', - `GitHub Repository ${selectedPattern.label}`, - vscode.ViewColumn.One, - { - enableScripts: true, - retainContextWhenHidden: true, - enableCommandUris: true, - enableFindWidget: true, - } - ) - panel.webview.html = WebviewService.getGitWebviewContent(patternUrl.githubUrl) + await vscode.env.openExternal(vscode.Uri.parse(patternUrl.githubUrl)) } else if (event.button.tooltip === 'Open in Serverless Land') { - const panel = vscode.window.createWebviewPanel( - 'serverlessLandPreview', - 'Serverless Land Preview', - vscode.ViewColumn.One, - { - enableScripts: true, - retainContextWhenHidden: true, - enableCommandUris: true, - enableFindWidget: true, - } - ) - panel.webview.html = WebviewService.getWebviewContent(patternUrl.previewUrl) + if (!serverlessPanel) { + serverlessPanel = vscode.window.createWebviewPanel( + 'serverlessLandPreview', + `${selectedPattern.label}`, + vscode.ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + enableCommandUris: false, + enableFindWidget: true, + } + ) + serverlessPanel.onDidDispose(() => { + serverlessPanel = undefined + }) + } else { + serverlessPanel.title = `${selectedPattern.label}` + } + serverlessPanel.webview.html = WebviewService.getWebviewContent(patternUrl.previewUrl) + serverlessPanel.reveal() } } } diff --git a/packages/toolkit/package.json b/packages/toolkit/package.json index c662436830d..749b05f16ec 100644 --- a/packages/toolkit/package.json +++ b/packages/toolkit/package.json @@ -1327,24 +1327,29 @@ "group": "1_account@3" }, { - "command": "aws.lambda.createNewSamApp", + "command": "aws.toolkit.lambda.createServerlessLandProject", "when": "view == aws.explorer", "group": "3_lambda@1" }, { - "command": "aws.launchConfigForm", + "command": "aws.lambda.createNewSamApp", "when": "view == aws.explorer", "group": "3_lambda@2" }, + { + "command": "aws.launchConfigForm", + "when": "view == aws.explorer", + "group": "3_lambda@3" + }, { "command": "aws.deploySamApplication", "when": "config.aws.samcli.legacyDeploy && view == aws.explorer", - "group": "3_lambda@3" + "group": "3_lambda@4" }, { "command": "aws.samcli.sync", "when": "!config.aws.samcli.legacyDeploy && view == aws.explorer", - "group": "3_lambda@3" + "group": "3_lambda@4" }, { "submenu": "aws.toolkit.submenu.feedback",