diff --git a/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts b/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts index 65cc89a0ad357b5d43ed1cdb00638618e7c8d47a..80cb27ce5ad624a457e54434561db0e35d58cf2d 100644 --- a/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts +++ b/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts @@ -217,9 +217,9 @@ suite('Snippet Variables Resolver', function () { writeText = this._throw; readFindText = this._throw; writeFindText = this._throw; - writeFiles = this._throw; - readFiles = this._throw; - hasFiles = this._throw; + writeResources = this._throw; + readResources = this._throw; + hasResources = this._throw; }; let resolver = new ClipboardBasedVariableResolver(clipboardService, 1, 0); @@ -250,9 +250,9 @@ suite('Snippet Variables Resolver', function () { writeText = this._throw; readFindText = this._throw; writeFindText = this._throw; - writeFiles = this._throw; - readFiles = this._throw; - hasFiles = this._throw; + writeResources = this._throw; + readResources = this._throw; + hasResources = this._throw; }; resolver = new ClipboardBasedVariableResolver(clipboardService, 1, 2); diff --git a/src/vs/platform/clipboard/common/clipboardService.ts b/src/vs/platform/clipboard/common/clipboardService.ts index cbcb41ffad09d0f84f19392f6f8446964a31bed2..d93af3a745f027cd60aca41fe9a037fb20f4f8ca 100644 --- a/src/vs/platform/clipboard/common/clipboardService.ts +++ b/src/vs/platform/clipboard/common/clipboardService.ts @@ -35,17 +35,17 @@ export interface IClipboardService { writeFindText(text: string): void; /** - * Writes files to the system clipboard. + * Writes resources to the system clipboard. */ - writeFiles(files: URI[]): void; + writeResources(resources: URI[]): void; /** - * Reads files from the system clipboard. + * Reads resources from the system clipboard. */ - readFiles(): URI[]; + readResources(): URI[]; /** - * Find out if files are copied to the clipboard. + * Find out if resources are copied to the clipboard. */ - hasFiles(): boolean; + hasResources(): boolean; } diff --git a/src/vs/platform/clipboard/electron-browser/clipboardService.ts b/src/vs/platform/clipboard/electron-browser/clipboardService.ts index 2514067dd60fe7d0b66c572c1d293a49e0f9a17b..d59c3edaf4d8b63ca022bae5d132391888ea9f8d 100644 --- a/src/vs/platform/clipboard/electron-browser/clipboardService.ts +++ b/src/vs/platform/clipboard/electron-browser/clipboardService.ts @@ -9,7 +9,6 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService import { clipboard } from 'electron'; import URI from 'vs/base/common/uri'; import { isMacintosh } from 'vs/base/common/platform'; -import { Schemas } from 'vs/base/common/network'; export class ClipboardService implements IClipboardService { @@ -40,27 +39,25 @@ export class ClipboardService implements IClipboardService { } } - public writeFiles(resources: URI[]): void { - const files = resources.filter(f => f.scheme === Schemas.file); - - if (files.length) { - clipboard.writeBuffer(ClipboardService.FILE_FORMAT, this.filesToBuffer(files)); + public writeResources(resources: URI[]): void { + if (resources.length) { + clipboard.writeBuffer(ClipboardService.FILE_FORMAT, this.resourcesToBuffer(resources)); } } - public readFiles(): URI[] { - return this.bufferToFiles(clipboard.readBuffer(ClipboardService.FILE_FORMAT)); + public readResources(): URI[] { + return this.bufferToResources(clipboard.readBuffer(ClipboardService.FILE_FORMAT)); } - public hasFiles(): boolean { + public hasResources(): boolean { return clipboard.has(ClipboardService.FILE_FORMAT); } - private filesToBuffer(resources: URI[]): Buffer { - return Buffer.from(resources.map(r => r.fsPath).join('\n')); + private resourcesToBuffer(resources: URI[]): Buffer { + return Buffer.from(resources.map(r => r.toString()).join('\n')); } - private bufferToFiles(buffer: Buffer): URI[] { + private bufferToResources(buffer: Buffer): URI[] { if (!buffer) { return []; } @@ -71,9 +68,9 @@ export class ClipboardService implements IClipboardService { } try { - return bufferValue.split('\n').map(f => URI.file(f)); + return bufferValue.split('\n').map(f => URI.parse(f)); } catch (error) { return []; // do not trust clipboard data } } -} \ No newline at end of file +} diff --git a/src/vs/workbench/parts/files/electron-browser/fileActions.ts b/src/vs/workbench/parts/files/electron-browser/fileActions.ts index c7cbf757f552824cf8d2a744707ac201ce61b8c0..480683436c0e24be81672f0978ee0c94c799f023 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileActions.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileActions.ts @@ -921,7 +921,7 @@ class CopyFileAction extends BaseFileAction { public run(): TPromise { // Write to clipboard as file/folder to copy - this.clipboardService.writeFiles(this.elements.map(e => e.resource)); + this.clipboardService.writeResources(this.elements.map(e => e.resource)); // Remove highlight if (this.tree) { @@ -1636,7 +1636,7 @@ export const pasteFileHandler = (accessor: ServicesAccessor) => { const clipboardService = accessor.get(IClipboardService); const explorerContext = getContext(listService.lastFocusedList, accessor.get(IViewletService)); - return TPromise.join(resources.distinctParents(clipboardService.readFiles(), r => r).map(toCopy => { + return TPromise.join(resources.distinctParents(clipboardService.readResources(), r => r).map(toCopy => { const pasteFileAction = instantationService.createInstance(PasteFileAction, listService.lastFocusedList, explorerContext.stat); return pasteFileAction.run(toCopy); })); diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts index 78e0e1d8e66bad62e25bb625eb72ae293162da7c..c6200f5b1a91770b2eafe1f4f4fd4508e0ad37d8 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts @@ -512,7 +512,7 @@ export class FileController extends WorkbenchTreeController implements IDisposab tree.setFocus(stat); // update dynamic contexts - this.fileCopiedContextKey.set(this.clipboardService.hasFiles()); + this.fileCopiedContextKey.set(this.clipboardService.hasResources()); if (!this.contributedContextMenu) { this.contributedContextMenu = this.menuService.createMenu(MenuId.ExplorerContext, tree.contextKeyService);