diff --git a/CHANGELOG.md b/CHANGELOG.md index 40d3f3c..4792ef4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ [![Share via Facebook](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Facebook.png)](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded"e=vscode-deploy-reloaded) [![Share via Twitter](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Twitter.png)](https://twitter.com/intent/tweet?source=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded&text=vscode-deploy-reloaded:%20https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded&via=mjkloubert) [![Share via Google+](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Google+.png)](https://plus.google.com/share?url=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded) [![Share via Pinterest](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Pinterest.png)](https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded&media=https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/demo1.gif&description=Recoded%20version%20of%20Visual%20Studio%20Code%20extension%20%27vs-deploy%27%2C%20which%20provides%20commands%20to%20deploy%20files%20to%20one%20or%20more%20destinations.) [![Share via Reddit](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Reddit.png)](https://www.reddit.com/submit?url=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded&title=vscode-deploy-reloaded) [![Share via LinkedIn](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/LinkedIn.png)](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded&title=vscode-deploy-reloaded&summary=Recoded%20version%20of%20Visual%20Studio%20Code%20extension%20%27vs-deploy%27%2C%20which%20provides%20commands%20to%20deploy%20files%20to%20one%20or%20more%20destinations.&source=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded) [![Share via Wordpress](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Wordpress.png)](https://wordpress.com/press-this.php?u=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded"e=vscode-deploy-reloaded&s=Recoded%20version%20of%20Visual%20Studio%20Code%20extension%20%27vs-deploy%27%2C%20which%20provides%20commands%20to%20deploy%20files%20to%20one%20or%20more%20destinations.&i=https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/demo1.gif) [![Share via Email](https://raw.githubusercontent.com/mkloubert/vscode-deploy-reloaded/master/img/share/Email.png)](mailto:?subject=vscode-deploy-reloaded&body=Recoded%20version%20of%20Visual%20Studio%20Code%20extension%20'vs-deploy'%2C%20which%20provides%20commands%20to%20deploy%20files%20to%20one%20or%20more%20destinations.:%20https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dmkloubert.vscode-deploy-reloaded) +## 0.67.1 (March 28th, 2018; bugfixes) + +* bugfixes +* updated the following [npm](https://www.npmjs.com/) modules: + * [vscode-helpers](https://www.npmjs.com/package/vscode-helpers) `0.26.0` + ## 0.67.0 (March 26th, 2018; APIs) * can define [custom API endpoints](https://github.com/mkloubert/vscode-deploy-reloaded/wiki/apis#custom-endpoints) now @@ -17,7 +23,7 @@ * [pug](https://www.npmjs.com/package/pug) `2.0.3` * [ssh2-sftp-client](https://www.npmjs.com/package/ssh2-sftp-client) `2.1.0` * [uglify-js](https://www.npmjs.com/package/uglify-js) `3.3.16` - * [vscode-helpers"](https://www.npmjs.com/package/vscode-helpers") `0.23.0` + * [vscode-helpers](https://www.npmjs.com/package/vscode-helpers) `0.23.0` * "outsourced" `loadModule()` function and `SESSION_STATE` constant to [vscode-helpers](https://www.npmjs.com/package/vscode-helpers) npm module * bugfixes * code cleanup and improvements diff --git a/package-lock.json b/package-lock.json index 50e5f2b..aea8806 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vscode-deploy-reloaded", - "version": "0.67.0", + "version": "0.67.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -203,7 +203,6 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/@types/moment-timezone/-/moment-timezone-0.5.4.tgz", "integrity": "sha512-GXWxTNJaN6A6CSa7+8a0ZGN5yGozW3So7fFHrXE/1c976Nx4hv2470Bx/q6/nmNNOYbcuKT61P0kRNf4cQTirw==", - "dev": true, "requires": { "moment": "2.21.0" } @@ -5607,9 +5606,9 @@ } }, "vscode-helpers": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/vscode-helpers/-/vscode-helpers-0.25.0.tgz", - "integrity": "sha512-bbqjHEFccMzOMQt0KEF6jub5M61XMYAesQ18FgNQp5gkNCf+b0EfzoItyo626hmzbi8NZkeeV2x8Rcjvwq8HNQ==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/vscode-helpers/-/vscode-helpers-0.27.0.tgz", + "integrity": "sha512-K/hD+Kuo/KbSeffDekkpdhXTx6YRFABCP2B8ooILnV6km/oWhPQh6P03K7tI+WSx7gl4JWCJd6anGD2TNe/3ZQ==", "requires": { "@types/fs-extra": "5.0.1", "@types/glob": "5.0.35", @@ -5617,6 +5616,7 @@ "@types/lodash": "4.14.106", "@types/marked": "0.3.0", "@types/minimatch": "3.0.3", + "@types/moment-timezone": "0.5.4", "@types/node": "7.0.57", "fs-extra": "5.0.0", "glob": "7.1.2", @@ -5627,6 +5627,7 @@ "merge-deep": "3.0.1", "minimatch": "3.0.4", "moment": "2.21.0", + "moment-timezone": "0.5.14", "node-enumerable": "3.9.0" }, "dependencies": { diff --git a/package.json b/package.json index 98fbe90..afe4760 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vscode-deploy-reloaded", "displayName": "Deploy (Reloaded)", "description": "Deploys files of a workspace to a destination.", - "version": "0.67.0", + "version": "0.67.1", "publisher": "mkloubert", "engines": { "vscode": "^1.21.0" @@ -71629,6 +71629,6 @@ "tmp": "0.0.33", "uglify-js": "^3.3.16", "uuid": "^3.2.1", - "vscode-helpers": "^0.25.0" + "vscode-helpers": "^0.27.0" } } diff --git a/src/extension.ts b/src/extension.ts index 1cb6690..1e6cbdf 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -323,6 +323,25 @@ async function onDidSaveTextDocument(e: vscode.TextDocument) { } } +async function refreshActiveWorkspaceList() { + try { + activeWorkspaces = []; + + const ALL_WORKSPACES = deploy_workspaces.getAllWorkspaces(); + if (ALL_WORKSPACES.length > 0) { + activeWorkspaces = [ + ALL_WORKSPACES[0] + ]; + } + } + catch (e) { + deploy_log.CONSOLE + .log(e, 'extension.refreshActiveWorkspaces()'); + } + + await updateActiveWorkspaces(); +} + async function reloadPlugins() { if (isDeactivating) { return; @@ -609,15 +628,30 @@ async function activateExtension(context: vscode.ExtensionContext) { workspaceWatcher = deploy_helpers.registerWorkspaceWatcher( context, async (ev, folder) => { - let newWorkspace: deploy_workspaces.Workspace; + if (ev === deploy_helpers.WorkspaceWatcherEvent.Added) { + return await createNewWorkspace( folder ); + } + }, + async (err, ev, folder, workspace) => { + if (err) { + deploy_log.CONSOLE + .trace(err, 'extension.activate.registerWorkspaceWatcher()'); - switch (ev) { - case deploy_helpers.WorkspaceWatcherEvent.Added: - newWorkspace = await createNewWorkspace( folder ); - break; + return; } - return newWorkspace; + if (ev === deploy_helpers.WorkspaceWatcherEvent.Removed) { + const NEW_ACTIVE_WORKSPACES = deploy_helpers.asArray( + activeWorkspaces + ).filter(aws => aws !== workspace); + + if (NEW_ACTIVE_WORKSPACES.length < 1) { + await refreshActiveWorkspaceList(); + } + else { + activeWorkspaces = NEW_ACTIVE_WORKSPACES; + } + } } ) ); @@ -1534,6 +1568,8 @@ async function activateExtension(context: vscode.ExtensionContext) { // reload workspace folders WF.next(async () => { await workspaceWatcher.reload(); + + await refreshActiveWorkspaceList(); }); // select workspace button diff --git a/src/workspaces.ts b/src/workspaces.ts index 612d9a6..9445fcb 100644 --- a/src/workspaces.ts +++ b/src/workspaces.ts @@ -4536,7 +4536,7 @@ export class WorkspaceMemento implements vscode.Memento { export function getActiveWorkspaces(): Workspace[] { const PROVIDER = activeWorkspaceProvider; if (PROVIDER) { - return deploy_helpers.asArray( PROVIDER() ); + return sortWorkspaces( PROVIDER() ); } } @@ -4548,7 +4548,7 @@ export function getActiveWorkspaces(): Workspace[] { export function getAllWorkspaces(): Workspace[] { const PROVIDER = allWorkspacesProvider; if (PROVIDER) { - return deploy_helpers.asArray( PROVIDER() ); + return sortWorkspaces( PROVIDER() ); } } @@ -4659,3 +4659,11 @@ export async function showWorkspaceQuickPick(context: vscode.ExtensionContext, return selectedItem.action(); } } + +function sortWorkspaces(workspaces: Workspace | Workspace[]) { + return deploy_helpers.asArray(workspaces).sort((x, y) => { + return deploy_helpers.compareValuesBy(x, y, ws => { + return ws.folder.index; + }); + }); +}