navigating outline via arrowkeys crashes vscodevim
Open
Nobody has claimed this yet.
kind/bug
- Dominant language
- TypeScript
- Stars
- 15.2k
- Forks
- 1.5k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 6
Description
To Reproduce
Steps to reproduce the behavior:
- Use
File: Focus on Outlineto focus the outline - Navigate with the arrowkeys to any element
- jump to it via ENTER
- VSCodeVim will have crashed (none of the bindings work anymore, e.g. j/k). The devtools show the following error:
ERR Converting circular structure to JSON: TypeError: Converting circular structure to JSON
at JSON.stringify (<anonymous>)
at Function.e.serializeReplyOK (file:///usr/lib/code/out/vs/workbench/workbench.main.js:3240:532)
at file:///usr/lib/code/out/vs/workbench/workbench.main.js:3234:276
at n.Class.derive._creator.then (file:///usr/lib/code/out/vs/workbench/workbench.main.js:161:366)
at e._receiveRequest (file:///usr/lib/code/out/vs/workbench/workbench.main.js:3234:176)
at e._receiveOneMessage (file:///usr/lib/code/out/vs/workbench/workbench.main.js:3233:270)
at file:///usr/lib/code/out/vs/workbench/workbench.main.js:3232:74
at e.fire (file:///usr/lib/code/out/vs/workbench/workbench.main.js:175:76)
at a (file:///usr/lib/code/out/vs/workbench/workbench.main.js:311:740)
at Socket.n._socketDataListener (file:///usr/lib/code/out/vs/workbench/workbench.main.js:311:959)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at Pipe.onread (net.js:594:20)
errors.ts:48 WARNING: Promise with no error callback:157
errors.ts:49 {exception: TypeError: Converting circular structure to JSON
at JSON.stringify (<anonymous>)
at Function…, error: null, promise: n.C…s.d…e.supportedForProcessing, handler: undefined, id: 157, …}
errors.ts:51 TypeError: Converting circular structure to JSON
at JSON.stringify (<anonymous>)
at Function.e.serializeReplyOK (rpcProtocol.ts:592)
at rpcProtocol.ts:246
at n.Class.derive._creator.then (winjs.base.js:1587)
at e._receiveRequest (rpcProtocol.ts:241)
at e._receiveOneMessage (rpcProtocol.ts:186)
at rpcProtocol.ts:115
at e.fire (event.ts:140)
at a (ipc.net.ts:106)
at Socket.n._socketDataListener (ipc.net.ts:135)
at emitOne (events.js:116)
at Socket.emit (events.js:211)
at addChunk (_stream_readable.js:263)
at readableAddChunk (_stream_readable.js:250)
at Socket.Readable.push (_stream_readable.js:208)
at Pipe.onread (net.js:594)
Screenshots

Environment
- Extension Name: vim
- Extension Version: 0.16.12
- OS Version: Linux x64 4.18.16-arch1-1-ARCH
- VSCode version: 1.27.2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the crash with File: Focus on Outline, arrow-key navigation, and Enter, then inspect the reported rpcProtocol.ts serialization error. Trace which VSCodeVim request returns a circular structure and verify that Vim bindings still work after jumping to an outline element.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- developer-experience, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100