Skip to content

Commit

Permalink
clipboard - back to custom solution for files
Browse files Browse the repository at this point in the history
  • Loading branch information
bpasero committed Feb 6, 2018
1 parent 82309ad commit 01b27cc
Showing 1 changed file with 1 addition and 33 deletions.
34 changes: 1 addition & 33 deletions src/vs/platform/clipboard/electron-browser/clipboardService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,11 @@ 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 { parse } from 'fast-plist';

export class ClipboardService implements IClipboardService {

// Clipboard format for files
// Windows/Linux: custom
// macOS: native, see https://developer.apple.com/documentation/appkit/nsfilenamespboardtype
private static FILE_FORMAT = isMacintosh ? 'NSFilenamesPboardType' : 'code/file-list';
private static FILE_FORMAT = 'code/file-list';

_serviceBrand: any;

Expand Down Expand Up @@ -59,10 +56,6 @@ export class ClipboardService implements IClipboardService {
}

private filesToBuffer(resources: URI[]): Buffer {
if (isMacintosh) {
return this.macOSFilesToBuffer(resources);
}

return new Buffer(resources.map(r => r.fsPath).join('\n'));
}

Expand All @@ -77,34 +70,9 @@ export class ClipboardService implements IClipboardService {
}

try {
if (isMacintosh) {
return this.macOSBufferToFiles(bufferValue);
}

return bufferValue.split('\n').map(f => URI.file(f));
} catch (error) {
return []; // do not trust clipboard data
}
}

private macOSFilesToBuffer(resources: URI[]): Buffer {
return new Buffer(`
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
${resources.map(r => `<string>${r.fsPath}</string>`).join('\n')}
</array>
</plist>
`);
}

private macOSBufferToFiles(buffer: string): URI[] {
const result = parse(buffer) as string[];
if (Array.isArray(result)) {
return result.map(f => URI.file(f));
}

return [];
}
}

0 comments on commit 01b27cc

Please sign in to comment.