stef-levesque/vscode-multiclip

Problem running command when open non-formatted file

melfa opened this issue · 6 comments

melfa commented

I'm trying to open large XML document (over 100Mb), so VSCode switch to non-formatted mode (syntax highlighting switched off). When i try to use command multiclip.copy i see message "Running the contributed command:'multiclip.copy' failed and this message in VSCode log:

[2018-06-25 15:38:52.429] [exthost1] [info] ExtensionService#_doActivateExtension vscode.npm {"startup":false,"activationEvent":"onLanguage:json"}
[2018-06-25 15:38:52.429] [exthost1] [info] ExtensionService#loadCommonJSModule /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/npm/out/main
[2018-06-25 16:26:30.698] [exthost1] [error] TypeError: Cannot read property 'document' of undefined
	at newCopyBuf (/Users/melfa/.vscode/extensions/slevesque.vscode-multiclip-0.1.4/out/src/extension.js:13:18)
	at disposables.push.vscode.commands.registerCommand (/Users/melfa/.vscode/extensions/slevesque.vscode-multiclip-0.1.4/out/src/extension.js:55:9)
	at e._executeContributedCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:674:613)
	at e.$executeContributedCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:675:6)
	at e._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:636:832)
	at e._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:636:550)
	at e._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:635:631)
	at e._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:635:400)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:634:315
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:637:395
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:95:432
	at e.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:96:764)
	at Socket.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:154:338)
	at emitOne (events.js:96:13)
	at Socket.emit (events.js:191:7)
	at readableAddChunk (_stream_readable.js:178:18)
	at Socket.Readable.push (_stream_readable.js:136:10)
	at Pipe.onread (net.js:560:20) multiclip.copy
[2018-06-25 16:26:37.779] [exthost1] [error] TypeError: Cannot read property 'document' of undefined
	at newCopyBuf (/Users/melfa/.vscode/extensions/slevesque.vscode-multiclip-0.1.4/out/src/extension.js:13:18)
	at disposables.push.vscode.commands.registerCommand (/Users/melfa/.vscode/extensions/slevesque.vscode-multiclip-0.1.4/out/src/extension.js:55:9)
	at e._executeContributedCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:674:613)
	at e.$executeContributedCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:675:6)
	at e._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:636:832)
	at e._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:636:550)
	at e._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:635:631)
	at e._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:635:400)
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:634:315
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:637:395
	at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:95:432
	at e.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:96:764)
	at Socket.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:154:338)
	at emitOne (events.js:96:13)
	at Socket.emit (events.js:191:7)
	at readableAddChunk (_stream_readable.js:178:18)
	at Socket.Readable.push (_stream_readable.js:136:10)
	at Pipe.onread (net.js:560:20) multiclip.copy

Can you try to set
"editor.largeFileOptimizations": false
in your user settings and try again ?

melfa commented

Hmm, result is the same. It is also on small XML files. Seems like issue unrelated to large files.
I see i have XML Tools extension installed https://marketplace.visualstudio.com/items?itemName=DotJoshJohnson.xml, when XML Tools disabled multiclip.copy works fine.
So... should i submit bug to XML Tools?

Small XML works fine on my side, without the XML Tools extension, so yes, you should submit an issue on their side.

Although, I can repro your issue with other file formats, when using large files. This seems to be an issue on VSCode side (not providing a valid Window.activeTextEditor in those cases) but I'll add some check in the extension to at least fail gracefully.

@jrieken are you aware of Window.activeTextEditor returning undefined for large files ?
I can repro the issue on 1.24.1 and 1.25.0-insider

Yes, documents that are larger than 50MB aren't synchronised to the extension host and as consequence there is no (active) editor for such documents. It simply doesn't exist for extensions. We do that as performance protection/optimisation and are likely not changing it. I wonder why you run into an exception? There many other cases which cause the active editor to be undefined so this should be a well handled case, right?

Well I do now :) (a6beeac)

Thanks for the quick response!