onDidChangeVisibleTextEditors runtime errors
Danp2 opened this issue · 4 comments
The changes made in 2ab9aeb result in a runtime error --
2023-03-29 10:48:31.006 [error] TypeError: Cannot read properties of undefined (reading 'call')
at f.invoke (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:145)
at m.deliver (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2066)
at d.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1704)
at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:98:153994
at f.invoke (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:145)
at m.deliver (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2066)
at d.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1704)
at m.acceptDocumentsAndEditorsDelta (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:98:13859)
at m.$acceptDocumentsAndEditorsDelta (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:98:12249)
at a.N (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:106:11223)
at a.M (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:106:10941)
at a.H (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:106:10034)
at a.G (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:106:9015)
at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:106:7803
at f.invoke (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:145)
at m.deliver (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2066)
at d.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1704)
at p.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:72:14907)
at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:122:16556
at f.invoke (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:145)
at m.deliver (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2066)
at d.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1704)
at p.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:72:14907)
at MessagePortMain.<anonymous> (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:122:14682)
at MessagePortMain.emit (node:events:526:28)
at MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:5:364)
Changing this line
AutoIt-VSCode/src/ai_commands.js
Line 165 in f5b7623
window.onDidChangeVisibleTextEditors(() => { trimOutputLines() });
eliminates this error.
Two questions --
- Can someone explain why the original method causes an error?
- I've seen examples where this event is being added to the
subscriptions
array. Is this needed here?
Hmmmm, for window.onDidChangeVisibleTextEditors
, the first parameter is a listener, which means that VSCode expects the parameter to return a function for it to call when the event happens. Setting the parameter to be trimOutputLines()
directly means that when the event happens, VSCode attempts to call undefined
-- the "nothing" that trimOutputLines()
is currently built to return.
Ummm...trimOutputLines
should be passed to window.onDidChangeVisibleTextEditors
not executed...:
window.onDidChangeVisibleTextEditors(trimOutputLines);
No need for an extra wrapper.
Ah, so my inclusion of the parens was the mistake?
Yes, you basically executed the function one time instead of letting window.onDidChangeVisibleTextEditors
execute it each time output console changed.