stef-levesque / vscode-multiclip

Multiple clipboards for VSCode
MIT License
46 stars 12 forks source link

Problem running command when open non-formatted file #19

Closed melfa closed 6 years ago

melfa commented 6 years ago

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
stef-levesque commented 6 years ago

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

melfa commented 6 years ago

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?

stef-levesque commented 6 years ago

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.

stef-levesque commented 6 years ago

@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

jrieken commented 6 years ago

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?

stef-levesque commented 6 years ago

Well I do now :) (a6beeac)

Thanks for the quick response!