From 35cb63280d33a9d88baa8100198e014c77c2e297 Mon Sep 17 00:00:00 2001 From: Kenneth Auchenberg Date: Sat, 16 Mar 2019 19:09:58 -0700 Subject: [PATCH] Add support for Browser Preview. Fixes #343 --- package.json | 6 ++++++ src/Config.ts | 4 ++++ src/appModel.ts | 15 ++++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index fc38a83d..d15a546f 100644 --- a/package.json +++ b/package.json @@ -115,6 +115,12 @@ "pattern": "/|/[^\\/]", "description": "Set Custom root of Live Server. \nTo change root the the server to sub folder of workspace, use '/' and relative path from workspace. \nExample: /subfolder1/subfolder2" }, + + "liveServer.settings.useBrowserPreview": { + "type": "boolean", + "default": false, + "description": "Open in Browser Preview inside VS Code, instead of default browser" + }, "liveServer.settings.CustomBrowser": { "type": [ "string", diff --git a/src/Config.ts b/src/Config.ts index f1a27f2d..8e7b0805 100644 --- a/src/Config.ts +++ b/src/Config.ts @@ -45,6 +45,10 @@ export class Config { return Config.getSettings('NoBrowser'); } + public static get getUseBrowserPreview(): boolean { + return Config.getSettings('useBrowserPreview'); + } + public static get getAdvancedBrowserCmdline(): string { return Config.getSettings('AdvanceCustomBrowserCmdLine'); } diff --git a/src/appModel.ts b/src/appModel.ts index 6ec40755..5907c8bd 100644 --- a/src/appModel.ts +++ b/src/appModel.ts @@ -1,6 +1,6 @@ 'use strict'; -import { window, workspace, Event, EventEmitter } from 'vscode'; +import { commands, window, workspace, Event, EventEmitter } from 'vscode'; import { LiveServerHelper } from './LiveServerHelper'; import { StatusbarUi } from './StatusbarUi'; @@ -221,6 +221,19 @@ export class AppModel implements IAppModel { } path = path.replace(/\\/gi, '/'); + let useBrowserPreview = Config.getUseBrowserPreview; + if (useBrowserPreview) { + let url = `${protocol}://${host}:${port}/${path}`; + let onSuccess = () => {}; + let onError = (err) => { + this.showPopUpMsg(`Server is started at ${this.runningPort} but failed to open in Browser Preview. Got Browser Preview extension installed?`, true); + console.log('\n\nError Log to open Browser : ', err); + console.log('\n\n'); + }; + commands.executeCommand(`browser-preview.openPreview`, url).then(onSuccess, onError); + return; + } + if (advanceCustomBrowserCmd) { advanceCustomBrowserCmd .split('--')