stephen-riley / regexworkbench

A Visual Studio Code extension that allows one to easily play with regular expressions
15 stars 8 forks source link

Extension reset after focus lost #8

Open pawelzwronek opened 4 years ago

pawelzwronek commented 4 years ago

When you switch to another tab and then switch back to Regex Workbench the whole form reset all input data :( Splitting window doesn't help as losing focus do the same.

[Window Title] Visual Studio Code

[Main Instruction] Visual Studio Code

[Content]

Version: 1.42.1 (user setup) Commit: c47d83b293181d9be64f27ff093689e8e7aed054 Date: 2020-02-11T14:45:59.656Z Electron: 6.1.6 Chrome: 76.0.3809.146 Node.js: 12.4.0 V8: 7.6.303.31-electron.0 OS: Windows_NT x64 10.0.18363

stephen-riley commented 4 years ago

Hi @pawelzwronek , thanks for this. I'm not able to reproduce this on Mac or Windows. Could you do this for me:

  1. ctrl-shift-P
  2. choose "Developer: Show Logs... "
  3. choose "Extension Host" Then reproduce what you're seeing and see if there are any error messages in the log and post them here. Thanks!
pawelzwronek commented 4 years ago

Nothing in Developer: Show Logs... but in electron Developer Tools I get this when I just write fffffeeedsc. One msg on every new character.

{
  "isTrusted": false,
  "level": 3,
  "message": "Uncaught TypeError: Cannot read property '0' of null",
  "line": 110,
  "sourceId": "vscode-resource://file///c%3A/Users/<me>/.vscode/extensions/stephen-riley.regexworkbench-2.0.4/media/js/regexworkbench.js"
}

On closing extension I get:

[[object Object]]Cannot read property 'dispose' of undefined

and

$onExtensionRuntimeError @ mainThreadExtensionService.ts:65
_doInvokeHandler @ rpcProtocol.ts:398
_invokeHandler @ rpcProtocol.ts:383
_receiveRequest @ rpcProtocol.ts:299
_receiveOneMessage @ rpcProtocol.ts:226
(anonymous) @ rpcProtocol.ts:101
fire @ event.ts:582
fire @ ipc.net.ts:453
_receiveMessage @ ipc.net.ts:733
(anonymous) @ ipc.net.ts:592
fire @ event.ts:582
acceptChunk @ ipc.net.ts:239
(anonymous) @ ipc.net.ts:200
t @ ipc.net.ts:28
emit @ events.js:200
addChunk @ _stream_readable.js:294
readableAddChunk @ _stream_readable.js:275
Readable.push @ _stream_readable.js:210
onStreamRead @ internal/stream_base_commons.js:166
mainThreadExtensionService.ts:66 TypeError: Cannot read property 'dispose' of undefined
    at RegexWorkbenchPanel.dispose (c:\Users\<me>\.vscode\extensions\stephen-riley.regexworkbench-2.0.4\out\extension.js:128:20)
    at c:\Users\<me>\.vscode\extensions\stephen-riley.regexworkbench-2.0.4\out\extension.js:75:45
    at l.fire (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:541)
    at dispose (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:655:834)
    at p.$onDidDisposeWebviewPanel (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:659:659)
    at p._doInvokeHandler (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:676:202)
    at p._invokeHandler (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:675:901)
    at p._receiveRequest (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:674:545)
    at p._receiveOneMessage (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:673:373)
    at c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:671:588
    at l.fire (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:541)
    at _.fire (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:190:934)
    at c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:838:649
    at l.fire (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:541)
    at _.fire (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:190:934)
    at t.PersistentProtocol._receiveMessage (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:195:277)
    at c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:192:459
    at l.fire (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:48:541)
    at p.acceptChunk (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:188:445)
    at c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:187:796
    at Socket.t (c:\Users\<me>\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:196:732)
    at Socket.emit (events.js:200:13)
    at addChunk (_stream_readable.js:294:12)
    at readableAddChunk (_stream_readable.js:275:11)
    at Socket.Readable.push (_stream_readable.js:210:10)
    at Pipe.onStreamRead (internal/stream_base_commons.js:166:17)
pawelzwronek commented 4 years ago

Resetting state with JSR:reset did not helped.

chrisant996 commented 4 years ago

For me, it seems to not occur when the "Replace All" button is selected. But when any of the other buttons is selected, then it reproduces 100% of the time -- when losing or gaining active focus, the page reloads to whatever was the last state from when the "Replace All" button was selected.

I'm happy to debug it -- but I'm stuck right now because I can't figure out how to debug the media/js/regexworkbench.js file. If you can point me at some relevant documentation, I can take a look.

vitalyruhl commented 3 years ago

Hi Guys. I have the same issue, see the gif below:

2021-10-25-09-39-40

mmahacek commented 2 years ago

I'm able to replicate this issue, and no Extension Host logs appear for this plugin.

VSCode: Version: 1.66.2 (system setup) Commit: dfd34e8260c270da74b5c2d86d61aee4b6d56977 Date: 2022-04-11T07:46:01.075Z Electron: 17.2.0 Chromium: 98.0.4758.109 Node.js: 16.13.0 V8: 9.8.177.11-electron.0 OS: Windows_NT x64 10.0.19044

Plugin: v2.0.5