/vscode-refresh-browser

(VS Code extension) Refresh your web-browser with ⌘R without switching from Code. Only works on macOS.

Primary LanguageTypeScriptMIT LicenseMIT

Refresh Browser (VS Code extension)

Icon

Refresh your web-browser with a ⌘R shortcut without switching from VS Code. Only works on macOS!

🔥 NEW FEATURE IN VERSION 1.1.0: enable refreshBrowser.runBuildTask setting if you want to run the build task of your project before refreshing the browser.

FAQ

  • Why macOS only? This extension relies on AppleScript to communicate with the browser.

  • Which browsers are supported? Safari, Chrome and Chromium-based browsers, such as Edge, Opera etc. Firefox is not supported, because it lacks the AppleScript API. For Firefox and other browsers, use @fabiospampinatoʼs Browser Refresh extension.

  • How is this extension different to @fabiospampinatoʼs Browser Refresh? Refresh Browser (this extension) communicates with the browser directly via the browserʼs AppleScript API. For this reason:

    • it works slightly faster;
    • Code always stays in focus;
    • it can find a tab to refresh by URL (configure this behavior using the refreshBrowser.findTabByUrlStartingWith setting).

    At the same time, it has limited browser support and is unable to send a “force refresh” command to the browser.

    @fabiospampinatoʼs Browser Refresh uses AppleScript to simulate the ⌘R keystroke in the browser window, resulting in Code window losing focus for a fraction of a second. Such method has its advantages: it can be used to simulate the “force refresh” keystroke (Cmd-Shift-R), and it is more universal in terms of browser support.

  • I need “force refresh”. What can I do? Keep your browser console always open and disable caching.

Installation

Click Install on the Marketplace, or run from the command palette (Cmd-Shift-P):

ext install dae.vscode-refresh-browser

Usage

Press Cmd-R or run Refresh Browser from the command palette (Cmd-Shift-P).

Command ID: extension.refreshBrowser

Settings

{
    "refreshBrowser.browser": "Google Chrome", // the browser to refresh
    "refreshBrowser.urlPrefixes": [] // refresh the tab whose URL starts with one of the specified prefixes
    "refreshBrowser.runBuildTask": false // if enabled, run the build task and wait for its completion before refreshing the browser (if the build task is not available, simply refresh the browser)
}

A note regarding refreshBrowser.urlPrefixes: if you add https://localhost, a tab whose URL is https://localhost/website/index.html will be refreshed. If there are multiple tabs with matching URLs, only the first one will be refreshed. If there are no tabs with a matching URL, the active tab will be refreshed.

Feedback

If you have a problem or a suggestion, please open an issue on GitHub.

License

MIT License © Eugene ‘Dae’ Zuyev (dae@dae.me).